分布式消息队列RocketMQ
四、 RocketMQ应用
4.8)消息消费重试机制
4.8.1)顺序消息的消费重试
对于顺序消息,当Consumer消费消息失败后,为了保证消息的顺序性,其会自动不断地进行消息重试,直到消费成功。
消费重试默认间隔时间为1000毫秒,重试期间应用会出现消息消费被阻塞的情 况。
代码实现:
// 定义一个push消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("cg");
// 顺序消息消费失败的消费重试时间间隔,默认为1000毫秒,其取值范围为[10, 30000]毫秒
consumer.setSuspendCurrentQueueTimeMillis(100);
由于对顺序消息的重试是无休止的,不间断的,直至消费成功;所以对于顺序消息的消费, 务必要保证应用能够及时监控并处理消费失败的情况,避免消费被永久性阻塞。
注意,顺序消息没有发送失败重试机制,但具有消费失败重试机制
4.8.2)无序消息的消费重试
对于无序消息(普通消息、延时消息、事务消息),当Consumer消费消息失败时,可以通过设置返回状态达到消息重试的效果。
不过需要注意,无序消息的重试只对集群消费方式生效,广播消费方式不提供失败重试特性;即对于广播消费,消费失败后,失败消息不再重试,继续消费后续消息。
4.8.3)消费重试次数与间隔
4.8.3.1)重试间隔时间
对于无序消息集群消费下的重试消费,每条消息默认多重试16次,但每次重试的间隔时间是不同的,会逐渐变长。每次重试的间隔时间如下表:
| 重试次数 | 与上次重试的间隔时间 | 重试次数 | 与上次重试的间隔时间 |
|---|---|---|---|

最低0.47元/天 解锁文章
2030

被折叠的 条评论
为什么被折叠?



