tencent cloud

文档反馈

消息重试

最后更新时间:2024-01-17 16:53:25
    本文主要介绍消息队列 TDMQ RocketMQ 版中消息重试与使用方法。

    功能介绍

    当消息第一次被消费者消费后,没有得到正常的回应,或者用户主动要求服务端重投,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
    重试次数与重试时间间隔关系如下:
    第几次重试
    距离上一次重试的时间间隔
    第几次重试
    距离上一次重试的时间间隔
    1
    1秒
    10
    6分钟
    2
    5秒
    11
    7分钟
    3
    10秒
    12
    8分钟
    4
    30秒
    13
    9分钟
    5
    1分钟
    14
    10分钟
    6
    2分钟
    15
    20分钟
    7
    3分钟
    16
    30分钟
    8
    4分钟
    17
    1小时
    9
    5分钟
    18
    2小时

    使用方式

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

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持