生产阶段
通过请求确认机制来保证消息的可靠传递
- 同步发送的时候要注意结果和异常
- 异步发送的时候注意回调函数的结果
- 发生超时可以查询日志的 API 判断消息是否在 Broker 中存储成功
存储阶段
- 主从模式保证高可用,Master 和 Slave 的复制模式可以改为同步复制模式
- Broker 的刷盘机制可以改为同步刷盘
- 消息只要持久化到CommitLog(日志文件)中,即使Broker宕机,未消费的消息也能重新恢复再消费。
消费阶段
Consumer 保证消息成功消费的关键在于确认的时机,不要在收到消息后就立即发送消费确认,而是**应该在执行完所有消费业务逻辑之后,再发送消费确认。**因为消息队列维护了消费的位置,逻辑执行失败了,没有确认,再去队列拉取消息,就还是之前的一条。