消息重试
更新时间 2025-11-26 11:46:02
最近更新时间: 2025-11-26 11:46:02
消息重试
消费者出现异常,分布式消息服务RocketMQ会根据消费重试策略重新投递该消息进行故障恢复。本文主要介绍分布式消息服务RocketMQ中消息重试与使用方法。
功能介绍
当消息第一次被消费者消费后,没有得到正常的回应,或者用户要求服务端重投,分布式消息服务RocketMQ会通过消费重试机制自动重新投递该消息,直到该消息被成功消费,当重试达到一定次数后,消息仍未被成功消费,则会停止重试,将消息投递到死信队列中。
当消息进入到死信队列中,表示分布式消息服务RocketMQ集群已经无法自动处理这批消息,一般这时就需要人为介入来处理这批消息。客户可以通过编写专门的客户端来订阅死信Topic,处理这批之前处理失败的消息。
消息重试次数
默认值:16次。
最大限制:不超过1000次。
最大重试次数由消费者分组的元数据控制,修改方式,请参见修改最大重试次数。
例如,最大重试次数为3次,则该消息最多可被投递4次,1次为原始消息,3次为重试投递次数。
说明
只有当消费模式为集群消费模式时,Broker 才会自动进行重试,广播消费模式下不会进行重试。
出现以下三种情况会按照消费失败处理并会发起重试:
1、消费者返回 ConsumeResult.FAILURE。
2、消费者返回 null。
3、消费者主动/被动抛出异常。