tencent cloud

文档反馈

死信队列

最后更新时间:2024-01-03 10:17:36
    本文为您介绍 TDMQ CMQ 版死信队列的基本概念、应用场景和使用方法。

    功能介绍

    死信队列(Dead-Letter-Queue,DLQ)用于处理无法被正常消费的消息。达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时 TDMQ CMQ 版不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中,这个特殊队列就是 DLQ。对新建的队列,或存量的队列,您都可以启用死信队列。

    应用场景

    定位问题:例如,某条消息被多次消费后却未被删除,一般是由于该消息未被正确消费,可能存在问题需要回溯定位。 您可以设置最大接收次数,超额后该消息会被淘汰到指定的死信队列,便于后续问题发现。
    优先级队列:例如,共享单车等 O2O 客户,对访问时延、实时性要求非常高。单车开锁逻辑中,当 TDMQ CMQ 版堆积了1亿条消息时,会优先处理最新生产的部分消息,老的消息淘汰到死信队列,在消费者有能力时再处理。 老的消息(如用户扫码开车场景)在等待时已流失了用户,老的消息的价值会偏小,建议优先处理最新消息。

    使用方法

    TDMQ CMQ 版控制台 新建队列的时候,您可以开启死信队列功能。
    
    
    
    死信队列名称:指定某队列为该队列的死信队列。
    死信策略:触发死信消息的方式。
    最大接收次数:将消息发送到死信队列前允许接收该消息的最大次数,支持设定值为1 - 1000次。
    最大未消费时间:将消息发送到死信队列前达到了最大未消费时间,允许设置5分钟 - 12小时。

    使用限制

    一个队列只能绑定一个死信队列。
    绑定的死信队列必须是同地域、同帐号下的队列。
    如果死信队列已被其他队列绑定,则不能直接删除该死信队列。
    开启事务消息的队列,不能成为其他队列的死信队列。
    多个队列(最多6个)可以指定同一个队列作为死信队列,但死信队列本身不能再指定其他队列作为死信队列 ,避免嵌套。
    可以在源队列(客户端生产、消费的数据队列)中解绑死信队列,解绑后无其他队列绑定,可删除死信队列。
    一个已存在的普通队列在 T 时刻被指定为死信队列,若在 T 时刻之前队列中还存在未被消费的消息,需要将 T 时刻之前的消息全部消费完成后才可以触发死信策略。
    联系我们

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

    技术支持

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

    7x24 电话支持