业务场景
RocketMQ 消费异常,但是重试间隔时间太长(HTTP协议重试策略),需要快速定位到系统异常问题,所以需要手动在控制台发送消息并且发送。
异常消息日志

RocketMQ
云消息队列 RocketMQ 版(原ONS)是阿里云基于 Apache RocketMQ 构建的低延迟、高并发、高可用、高可靠的分布式“消息、事件、流”统一处理平台。RocketMQ 自诞生以来一直服务阿里集团13年,历经多次双十一万亿级数据洪峰稳定性验证。
异步解耦

消息重试
云消息队列 RocketMQ 版支持消息重试功能,即Consumer消费某条消息失败或消费超时,云消息队列 RocketMQ 版会根据消息重试机制重新投递消息。
注意事项
-
一条消息无论重试多少次,这些重试消息的 Message ID
都不会改变。 -
消息重试只针对集群消费模式生效;广播消费模式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消息。
消息重试策略
云消息队列 RocketMQ 版消息收发过程中,若Consumer消费某条消息失败或消费超时,则云消息队列 RocketMQ 版会在重试间隔时间后,将消息重新投递给Consumer消费,若达到最大重试次数后消息还没有成功被消费,则消息将被投递至死信队列。您可以通过消费死信队列中的死信消息来恢复业务异常。
消息重试主要功能行为包括:
-
重试间隔:上一次消费失败或超时后,距下次消息可被重新消费的间隔时间。 -
最大重试次数:消息消费失败后,可被云消息队列 RocketMQ 版重复投递的最大次数。
对于TCP协议和HTTP协议,消息重试的重试间隔和最大重试次数有所不同。由于这里是使用的HTTP协议,所以直接看HTTP协议重试策略
HTTP协议重试策略

重新发送消息
Step 1. 查找需要发送的 Topic

Step 2. 进入 Topic 后点击快速体验

Step 3. 快速体验的消息生产和消费

-
消息内容:就是需要发送的原始消息内容
{
"userCode": "20241111111100000001",
"certificateType": "ID_CARD",
"remark": null,
"certificateName": "阿克苏",
"certificateNo": "xxxxxxxxxxxxxx",
"force": false,
"auditStatus": 1
}
-
消息key:消息ID -
消息tag:对应的消息tag
填写好相关信息后,点击发送就可以立马进入消费了,从而快速解决系统异常问题。

原文始发于微信公众号(开源技术小栈):RocketMQ 消费异常如何重新发送消息并调试
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/247757.html