业务场景
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
填写好相关信息后,点击发送就可以立马进入消费了,从而快速解决系统异常问题。
原创文章,作者:网络技术联盟站,如若转载,请注明出处:https://www.sudun.com/ask/49930.html