科技微讯

腾讯云消息队列 CMQ 可见消息、延迟消息计数不准确的问题

2023-03-29 更新:标题所反映的问题已经修复,现在:1、往队列发送了延迟消息后,消费者连接过一次后(包括连接后断开),DelayMsgNum 就能正确显示,而不是始终显示为 0,也不会被统计进 ActiveMsgNum;2、从队列中取出一条消息但一直不消费,即一直不删除,如果消息隐藏时间比较长,假设为 5min,那大概延迟 2min 后(不是官方说的 30s-60s),InactiveMsgNum 会正确显示,而不是一直显示为 0,同时 ActiveMsgNu 会相应减少。

以下是本笔记的原文。

使用 tencentcloud-sdk-nodejs-tdmqDescribeCmqQueueDetail 接口查询一个 CMQ 队列的详情,会返回 ActiveMsgNum、InactiveMsgNum、DelayMsgNum 等数据,根据文档,这三个数据的意思分别是:

在 CMQ 后台也有对可见消息、不可见消息、堆积消息的解释:

综合以上两处说明,以下是我的理解:

但实际表现却和理论不一样,使用 DescribeCmqQueueDetail 接口查询一个队列的详情,给出来的数据和实际可能有较大误差,具体体现在:

总结一下:

BTW,tencentcloud-sdk-nodejs-tdmq 还有一个 DescribeCmqQueues 接口,它可查询全量队列的信息,但它返回的可见消息数、延迟消息数比 DescribeCmqQueueDetail 更不准确,DelayMsgNum 永远是 null。

补充

咨询了腾讯云客服:


相关文章:

thumbsup0
thumbsdown0
暂无评论