
重试机制触发消息发送重试机制的条件如下:
客户端消息发送请求调用失败或请求超时
网络异常造成连接失败或请求超时。
服务端节点处于重启或下线等状态造成连接失败。
服务端运行慢造成请求超时。
服务端返回失败错误码
系统逻辑错误:因运行逻辑不正确造成的错误。
系统流控错误:因容量超限造成的流控错误。
消息重试时间间隔如下:
无序消息:重试时间为阶梯时间
顺序消息:重试时间为固定时间,默认为3s
RocketMQ的重试机制涉及发送端重试和消费端重试,消费端重试关联死信队列
发送端重试RocketMQ 在客户端中内置了请求重试逻辑,支持在初始化时配置消息发送最大重试次数(默认为 2 次),失败时会按照设置的重试次数重新发送。直到消息发送成功,或者达到最大重试次数时结束,并在最后一次失败后返回调用错误的响应。对于同步发送和异步发送,均支持消息发送重试。
同步发送:调用线程会一直阻塞,直到某次重试成功或最终重试失败(返回错误码或抛出异常)。
异步发送:调用线程不会阻塞,但调用结果会通过回调的形式,以异常事件或者成功事件返回。
我们也手动设置重试次数。代码示例如下:
123456p ...





