RocketMQ 如何保证消息不丢?
发布于
一、生产端不丢
- 同步发送:等待 Broker ACK,失败重试。
- 开启重试机制:retryTimesWhenSendFailed。
- 事务消息保证本地事务与消息发送一致。
二、Broker 不丢
- 同步刷盘:消息写入磁盘才返回成功(flushDiskType=SYNC_FLUSH)。
- 同步复制:主从都写入才返回成功(brokerRole=SYNC_MASTER)。
三、消费端不丢
- 手动 ACK:消费成功后才提交 offset。
- 消费失败重新入队或进重试队列。
- 死信队列:重试多次仍失败的消息进死信队列,人工处理。