如何暂停交换机/队列接收消息?

3

我的部署如下所示:

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

中继服务器是一个包含交换机和许多队列的rabbitmq服务。将任何带有映射路由键的消息推送到此交换机,将把该消息推送到适当的队列。

现在,我的要求是,当服务器宕机时,我应该避免/阻止“中继服务器”接受任何进一步的消息。

请帮忙解决。死信队列无法解决问题。


我对rabbitmq一无所知,但由于很长时间没有人回复了,我将提供一个似乎合理且可行的方案,不考虑技术:在客户端和中继服务器之间设置一个重定向服务器,将请求传递到中继服务器(如果它正常运行或者你告诉它正在运行)。重定向服务器应该有99.9%的正常运行时间,所有更新和其他操作都可以在中继服务器上完成。 - SimpleVar
2个回答

2

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

步骤1:在想要将消息推送到队列之前轮询服务器以获取其运���状态。

步骤2:如果服务器正在运行,请继续将消息推送到队列;否则您知道该怎么做。

希望可以帮助你。


0

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

在队列自动删除之前,它可以未使用的时间长度(毫秒)。

因此,如果服务器关闭,相应的队列将被删除,没有消息会排队等待。

请参阅文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接