消息不丢失:
生产者
1 生产者 同步发送:异步发送(回调函数)。单向是最不靠谱的方式。
2 生产者 发送消息失败,重试
3 多个Brocker Master节点
Broker存储阶段
集群部署,主从模式,高可用。
1 修改刷盘策略为同步刷盘。默认情况下是异步刷盘
2 所以我们还可以配置不仅是等Broker Master刷完盘就通知Producer,而是等Master和Slave都刷完盘后才去通知Producer说消息ok了。
Consumer消费阶段
1 消费者会先把消息拉取到本地,然后进行业务逻辑,业务逻辑完成后手动进行ack确认,这时候才会真正的代表消费完成。而不是说pull到本地后消息就算消费完了。
2 消息消费失败自动重试。如果消费消息失败了,没有进行ack确认,则会自动重试,重试策略和次数(默认15次)如下配置