Skip to content
章节导航

【核心知识】RocketMQ 生产和消费消息重试及处理

生产者 Producer 重试(异步和 SendOneWay 下配置无效)

  • 消息重投(保证数据的高可靠性), 本身内部支持重试,默认次数是 2
shell
/* 生产者投递消息重试次数 */
        producer.setRetryTimesWhenSendFailed(3);
  • 如果网络情况比较差,或者跨集群则建改多几次

消费端重试

原因

消息处理异常、broker 端到 consumer 端各种问题,如网络原因闪断,消费处理失败ACK返回失败等等问题。

注意

  • 重试间隔时间配置,默认每条消息最多重试 16 次
shell
messageDelayLevel=ls 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
  • 超过重试次数人工补偿
  • 消费端去重
  • 一条消息无论重试多少次,这些重试消息的 Message ID,key 不会改变。
  • 消费重试只针对集群消费方式生效;广播方式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消息,