RocketMQ消费重试
重试状态机
- Ready:已就绪状态。消息在Apache RocketMQ服务端已就绪,可以被消费者消费。
- Inflight:处理中状态。消息被消费者客户端获取,处于消费中还未返回消费结果的状态。
- WaitingRetry:待重试状态,PushConsumer独有的状态。当消费者消息处理失败或消费超时,会触发消费重试逻辑判断。如果当前重试次数未达到最大次数,则该消息变为待重试状态,经过重试间隔后,消息将重新变为已就绪状态可被重新消费。多次重试之间,可通过重试间隔进行延长,防止无效高频的失败。
- Commit:提交状态。消费成功的状态,消费者返回成功响应即可结束消息的状态机。
- DLQ:死信状态。消费逻辑的最终兜底机制,若消息一直处理失败并不断进行重试,直到超过最大重试次数还未成功,此时消息不会再重试,会被投递至死信队列。您可以通过消费死信队列的消息进行业务恢复。
重试间隔
http云版本应该是5分钟一次,可以调整
下面是正常版本,超过进入死信队列
无序消息(非顺序消息):重试间隔为阶梯时间,具体时间如下:
第几次重试 | 与上次重试的间隔时间 | 第几次重试 | 与上次重试的间隔时间 |
1 | 10秒 | 9 | 7分钟 |
2 | 30秒 | 10 | 8分钟 |
3 | 1分钟 | 11 | 9分钟 |
4 | 2分钟 | 12 | 10分钟 |
5 | 3分钟 | 13 | 20分钟 |
6 | 4分钟 | 14 | 30分钟 |
7 | 5分钟 | 15 | 1小时 |
8 | 6分钟 | 16 | 2小时 |
信息
若重试次数超过16次,后面每次重试间隔都为2小时。
Loading...