消息队列 RabbitMQ 版 清空消息

这篇说说消息队列 TDMQ RabbitMQ 版清空 Queue 消息的两种方法:配置 Policy(适用于大量堆积,逐步清理保集群稳定)和开源控制台 Purge Message(适用于少量堆积,直接永久删除),并强调清空操作不可恢复,需先排查堆积原因。 Policy 方法:通过设置 Max Length 等参数逐步减少堆积,适合十万级消息。 Purge 方法:直接永久清空所有消息,适合千级消息,大量堆积时需先使用 。

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

这里说明消息队列 TDMQ RabbitMQ 版中清空 Queue 消息的方法。

注意:1. 当消息出现非预期的堆积时,建议先排查堆积原因(如消费者宕机、消费者数量不足、超大消息等),再考虑清理消息,否则即使清理了消息,堆积问题可能还会反复出现。

注意:2. 清空 Queue 消息后,Queue 中的所有消息会被永久清理,无法恢复,请谨慎操作。

一、使用限制

目前仅开源托管版集群支持清理 Queue 消息。

二、操作步骤

清理 Queue 消息的方式有两种,建议根据具体场景来选择清理消息方法。

方法一:配置 Policy方法二:开源控制台 Purge Message

三、方法概述

如果消息堆积数量较大(如达到十万级别),或者堆积的消息大小较大(如超过节点可用内存的50%),建议通过配置 Policy 来逐步减少堆积。

该方法不会导致集群内存负载高,在清理消息的过程中,能够保证集群稳定性。

四、操作步骤

1. 登录 TDMQ RabbitMQ 版控制台。

2. 在左侧导航栏选择 集群管理 > Vhost,选择好地域后,单击目标 Vhost 的名称,进入基本信息页面。

3. 单击策略 > 新建策略。

4. 填写策略基本设置:

·策略名称:按需填写

·匹配模式:填写需要清理堆积消息的 Queue 名称

·策略类型:自定义策略

·应用范围:Queues

·优先级:按需填写

5. 填写策略定义,按需选填以下三个参数或其中一个:

·Max Length:

·作用:Queue 中允许的最大消息数。当队列中的消息数达到此限制时,根据 Overflow Behaviour 设置,将会删除旧消息或拒绝新消息。

·数值:根据堆积情况填入数值,如1000,表示 Queue 中最多允许1000条消息。

·Max Length Bytes:

·作用:队列中允许的最大消息字节总数。当队列中的消息字节总数达到此限制时,根据 Overflow Behaviour 设置,将会删除旧消息或拒绝新消息。

·数值:根据堆积情况填入数值,如10485760,表示 Queue 中最多允许10485760 bytes(10MB)的消息字节总数。

·Overflow Behaviour:

·作用:当队列达到最大长度或最大字节限制时的处理方式。合法值为:

·drop-head:删除队列头部的旧消息。

·reject-publish:拒绝新发布的消息。

·reject-publish-dlx:拒绝新发布的消息,并将被拒绝的消息路由到队列设置的死信交换机(Dead letter exchange)

·填值:根据业务情况填入处理方式,如drop-head,表示 Queue 达到最大长度或最大字节限制时,将会删除队列头部的旧消息,以达到降低堆积的目的。

6. 单击完成。然后再观察 Queue 的堆积情况。

7. 如果 Queue 堆积量很大,可以逐步修改策略的数值,来逐渐降低 Queue 中的堆积,再使用方法二完全清空消息,避免集群节点负载高的问题。

五、方法概述

1. 如果消息堆积数量较小(如千级别),或者堆积的消息总大小较小(如不超过节点可用内存的10%),可以使用开源控制台的 Purge Message 能力进行清理。

2. 如果消息堆积量较大,使用该方法清理消息容易导致集群节点内存负载高,建议可以先使用方法一降低消息堆积量,再使用方法二清空剩余消息。

注意:该方法会将 Queue 中所有消息永久删除且不可恢复,请谨慎操作。

六、操作步骤

1. 登录开源 RabbitMQ 控制台。

2. 单击 Queue 页签,找到需要清空消息的 Queue,并单击进入 Queue 详情。

3. 在页面中找到 Purge,单击 Purge Messages,再单击确认。

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