消息队列 CMQ 版 死信队列

这篇说说TDMQ CMQ版死信队列(DLQ)功能,用于处理多次消费失败的消息,支持定位问题和优先级队列场景,并说明使用方法与限制。 死信队列:消息重试失败后转入指定队列,便于问题回溯。 应用场景:定位消费失败原因,或优先处理最新消息、将老旧消息淘汰。 使用方法:控制台新建队列时可配置死信队列名称、最大接收次数或最大未消费时间。

相关产品
消息队列 CMQ 版 产品页,含版本规格、价格与购买入口。

这里说明 TDMQ CMQ 版死信队列的基本概念、应用场景和使用方法。

一、功能介绍

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

二、应用场景

·定位问题:例如,某条消息被多次消费后却未被删除,一般是由于该消息未被正确消费,可能存在问题需要回溯定位。 你可以设置最大接收次数,超额后该消息会被淘汰到指定的死信队列,便于后续问题发现。

·优先级队列:例如,共享单车等 O2O 客户,对访问时延、实时性要求非常高。单车开锁逻辑中,当 TDMQ CMQ 版堆积了1亿条消息时,会优先处理最新生产的部分消息,老的消息淘汰到死信队列,在消费者有能力时再处理。n老的消息(如用户扫码开车场景)在等待时已流失了用户,老的消息的价值会偏小,建议优先处理最新消息。

三、使用方法

在 TDMQ CMQ 版控制台 新建队列的时候,你可以开启死信队列功能。

·死信队列名称:指定某队列为该队列的死信队列。

·死信策略:触发死信消息的方式。

·最大接收次数:将消息发送到死信队列前允许接收该消息的最大次数,支持设定值为1 – 1000次。

·最大未消费时间:将消息发送到死信队列前达到了最大未消费时间,允许设置5分钟 – 12小时。

四、使用限制

·一个队列只能绑定一个死信队列。

·绑定的死信队列必须是同地域、同账号下的队列。

·如果死信队列已被其他队列绑定,则不能直接删除该死信队列。

·开启事务消息的队列,不能成为其他队列的死信队列。

·多个队列(最多6个)可以指定同一个队列作为死信队列,但死信队列本身不能再指定其他队列作为死信队列 ,避免嵌套。

·可以在源队列(客户端生产、消费的数据队列)中解绑死信队列,解绑后无其他队列绑定,可删除死信队列。

·一个已存在的普通队列在 T 时刻被指定为死信队列,若在 T 时刻之前队列中还存在未被消费的消息,需要将 T 时刻之前的消息全部消费完成后才可以触发死信策略。

赞 (0)
上一篇 4天前
下一篇 4天前