MST

星途 面试题库

面试题:消息队列之RocketMQ消息重试机制基础

在RocketMQ中,简述消息重试机制是如何触发的,以及默认的重试策略是什么?
31.3万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

消息重试机制的触发

  1. 消费者端异常:当消费者在消费消息时,若出现未捕获的异常(比如业务代码逻辑错误、数据库连接异常等),RocketMQ 会认为该消息消费失败,从而触发消息重试。
  2. 手动返回消费状态:消费者在消费消息的回调方法中,手动返回 ConsumeConcurrentlyStatus.RECONSUME_LATER 状态,也会触发消息重试,表明当前消息需要稍后重新消费。

默认重试策略

  1. 重试次数:默认情况下,一条消息消费失败后,会进行 16 次重试。
  2. 重试间隔:重试间隔随着重试次数增加而逐渐变长,第一次重试间隔为 10 秒,第二次为 30 秒,第三次为 1 分钟,第四次为 2 分钟,第五次为 3 分钟,第六次为 4 分钟,第七次为 5 分钟,第八次为 6 分钟,第九次为 7 分钟,第十次为 8 分钟,第十一次为 9 分钟,第十二次为 10 分钟,第十三次为 20 分钟,第十四次为 30 分钟,第十五次为 1 小时,第十六次为 2 小时。