RocketMQ 消费异常如何重新发送消息并调试

业务场景

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

异常消息日志

RocketMQ 消费异常如何重新发送消息并调试

RocketMQ

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

异步解耦

RocketMQ 消费异常如何重新发送消息并调试

消息重试

云消息队列 RocketMQ 版支持消息重试功能,即Consumer消费某条消息失败或消费超时,云消息队列 RocketMQ 版会根据消息重试机制重新投递消息。

注意事项

  • 一条消息无论重试多少次,这些重试消息的Message ID都不会改变。
  • 消息重试只针对集群消费模式生效;广播消费模式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消息。

消息重试策略

云消息队列 RocketMQ 版消息收发过程中,若Consumer消费某条消息失败或消费超时,则云消息队列 RocketMQ 版会在重试间隔时间后,将消息重新投递给Consumer消费,若达到最大重试次数后消息还没有成功被消费,则消息将被投递至死信队列。您可以通过消费死信队列中的死信消息来恢复业务异常。

消息重试主要功能行为包括:

  • 重试间隔:上一次消费失败或超时后,距下次消息可被重新消费的间隔时间。
  • 最大重试次数:消息消费失败后,可被云消息队列 RocketMQ 版重复投递的最大次数。

对于TCP协议和HTTP协议,消息重试的重试间隔和最大重试次数有所不同。由于这里是使用的HTTP协议,所以直接看HTTP协议重试策略

HTTP协议重试策略

RocketMQ 消费异常如何重新发送消息并调试

重新发送消息

Step 1. 查找需要发送的 Topic

RocketMQ 消费异常如何重新发送消息并调试

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

RocketMQ 消费异常如何重新发送消息并调试

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

RocketMQ 消费异常如何重新发送消息并调试
  • 消息内容:就是需要发送的原始消息内容
{
    "userCode""20241111111100000001",
    "certificateType""ID_CARD",
    "remark": null,
    "certificateName""阿克苏",
    "certificateNo""xxxxxxxxxxxxxx",
    "force"false,
    "auditStatus": 1
}
  • 消息key:消息ID
  • 消息tag:对应的消息tag

填写好相关信息后,点击发送就可以立马进入消费了,从而快速解决系统异常问题。

RocketMQ 消费异常如何重新发送消息并调试

原文始发于微信公众号(开源技术小栈):RocketMQ 消费异常如何重新发送消息并调试

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/247757.html

(0)
李, 若俞的头像李, 若俞

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!