避免消息堆积
提高消费速率:
1、消费者集群
2、批量消费 比如一次获取原来的n条信息 可以比如字符串拼接啥的
保证消息不丢失
1、mq服务器端:持久化硬盘
2、生产者:ack消息确认机制 mq服务器端刷到硬盘后返回一个ack给生产者
如果mq服务器宕机了咋办? 生产者先把消息存进mysql或redis里 等mq启动后再次发送
3、消费者:确认消费成功 发送ack给mq服务器端,服务器端删除msg
保证消息顺序一致:
*问题背景:集群、多分区
让需要保持顺序的消息采用key%分区总数的方式 投入到同一个消费者 中
保证幂等(不重复消费)
保证消息不重复消费:
1、根据消息的全局id
2、db层面加唯一约束
3、重做表