上云无忧 > 文档中心 > 腾讯云消息队列 RocketMQ 开发指南 - 消息重试
消息队列 RocketMQ 版
腾讯云消息队列 RocketMQ 开发指南 - 消息重试

文档简介:
本文主要介绍消息队列 TDMQ RocketMQ 版中消息重试与使用方法。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

功能介绍

当消息第一次被消费者消费后,没有得到正常的回应,或者用户主动要求服务端重投,TDMQ RocketMQ 版会通过消费重试机制自动重新投递该消息,直到该消息被成功消费,当重试达到一定次数后,消息仍未被成功消费,则会停止重试,将消息投递到死信队列中。
当消息进入到死信队列中,表示 TDMQ RocketMQ 版已经无法自动处理这批消息,一般这时就需要人为介入来处理这批消息。您可以通过编写专门的客户端来订阅死信 Topic,处理这批之前处理失败的消息。
说明
只有当消费模式为集群消费模式时,Broker 才会自动进行重试,广播消费模式下不会进行重试。
出现以下三种情况会按照消费失败处理并会发起重试:
消费者返回 ConsumeResult.FAILURE。
消费者返回 null。
消费者主动/被动抛出异常。

重试次数

当消息需要重试时,TDMQ RocketMQ 中配置了如下的 messageDelayLevel 参数来设置重试次数与时间间隔。
		
messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
由于 SDK 中第一次 delayLevel 为3,所以重试次数与重试时间间隔关系如下:

第几次重试
距离上一次重试的时间间隔
第几次重试
距离上一次重试的时间间隔
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小时

使用方式

无需特别处理,5.0的 SDK 遵循上述规则。

相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部