JAVA全系列 教程
3762个小节阅读:7094.5k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Consumer消费消息失败后,要提供一种重试机制,使消息再消费一次。Consumer消费消息失败通常可以认为有以下几种情况:
消息队列RocketMQ消息收发过程中,若Consumer消费某条消息失败,则消息队列RocketMQ会在重试间隔时间后,将消息重新投递给Consumer消费,若达到最大重试次数后消息还没有成功被消费,则消息将被投递至死信队列。
重试间隔:消息消费失败后再次被消息队列RocketMQ投递给Consumer消费的间隔时间。
最大重试次数:消息消费失败后,可被消息队列RocketMQ重复投递的最大次数。
在RocketMQ中,顺序消息和无序消息(包括普通消息、延时消息、定时消息和事务消息)的重试机制如下:
协议 | 消息类型 | 重试间隔 | 最大重试次数 | 配置方式 |
---|---|---|---|---|
TCP协议 | 顺序消息 | 间隔时间可通过自定义参数suspendTimeMillis取值进行配置。参数取值范围:10~30000,单位:毫秒,默认值:1000毫秒,即1秒。 | 最大重试次数可通过自定义参数MaxReconsumeTimes取值进行配置。该参数取值无最大限制。若未设置参数值,默认最大重试次数为Integer.MAX。 | 请参见配置方式(TCP协议)。 |
TCP协议 | 无序消息 | 间隔时间根据重试次数阶梯变化,取值范围:1秒~2小时。不支持自定义配置。若最大重试次数小于等于16次,则每次重试的间隔时间会阶梯变化,具体时间,请参见无序消息重试间隔。若最大重试次数大于16次,则超过16次的间隔时间均为2小时。 | 最大重试次数可通过自定义参数MaxReconsumeTimes取值进行配置。默认值为16次,该参数取值无最大限制,建议使用默认值。 | |
HTTP协议 | 顺序消息 | 1分钟 | 288次 | 系统预设,不支持修改。 |
HTTP协议 | 无序消息 | 5分钟 | 288次 | 系统预设,不支持修改。 |
TCP协议无序消息重试时间间隔:
第几次重试 | 与上次重试的间隔时间 | 第几次重试 | 与上次重试的间隔时间 |
---|---|---|---|
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小时 |
实时效果反馈
1.下列不属于消息重试的配置方式是哪个?
A CONSUME_SUCCESS
B RECONSUME_LATER
C null
D throw new Exception("Consumer Message exceotion")
答案
1=>A