首页 > 解决方案 > 强制 RabbitMQ 停止接收任何消息

问题描述

我们如何强制 RabbitMQ 在一段时间内停止接收任何消息?

它必须尽可能快,因为我们想在测试之间这样做。

我们尝试了策略,但没有找到任何适用于该问题的策略。rabbitmqctl stop and start 也可以,但这很慢。

背景:我们有一个带有 RabbitMQ 和许多服务的自动化端到端测试环境。在测试之间,我们希望通过清除所有存储和缓存以及队列来重置环境。问题是,在中间状态下,消息可以填充已清除服务中的数据。所以我们要先停止 RabbitMQ 接收消息,然后清除所有队列,然后清除所有服务上的所有存储和缓存。

标签: rabbitmq

解决方案


我制定政策

max-length-bytes:   1
overflow:   reject-publish

适用于所有队列和交换。这似乎有效,rabbit mq 不再传递任何消息。


推荐阅读