RocketMQ 如何保证消息不丢?

发布于

一、生产端不丢

  • 同步发送:等待 Broker ACK,失败重试。
  • 开启重试机制:retryTimesWhenSendFailed。
  • 事务消息保证本地事务与消息发送一致。

二、Broker 不丢

  • 同步刷盘:消息写入磁盘才返回成功(flushDiskType=SYNC_FLUSH)。
  • 同步复制:主从都写入才返回成功(brokerRole=SYNC_MASTER)。

三、消费端不丢

  • 手动 ACK:消费成功后才提交 offset。
  • 消费失败重新入队或进重试队列。
  • 死信队列:重试多次仍失败的消息进死信队列,人工处理。