如何让exchanges/queues暂时停止接收消息?

How to stop exchanges/queues from receiving messages temporarily?

我的部署如下图所示:

客户端 -> 中继服务器 -> 服务器

中继服务器是一个 rabbitmq 服务,它包含一个交换器和许多绑定到这个交换器的队列。使用映射路由键推送到此交换器的任何消息都会将消息推送到适当的队列。

现在,我的要求是,当服务器关闭时,我应该avoid/block "relay server" 不再接受任何消息。

请帮忙。死消息队列不起作用。

我会尽量回答你的问题,因为我目前正在使用 RabbitMQ。据我所知,没有办法阻止消息被推送到队列。您必须以编程方式实现此目的。

第 1 步:在将消息推送到队列之前轮询服务器的 运行 状态。

第 2 步:如果服务器 运行 继续将消息推送到队列,否则您知道自己想要做什么。

希望对您有所帮助。

server 可以使用 x-expires 集创建队列,这意味着:

How long a queue can be unused for before it is automatically deleted (milliseconds).

因此,如果服务器关闭,关联的队列将被删除,并且不会有任何消息排队。

See the documentation