【问题标题】:How to stop exchanges/queues from receiving messages temporarily?如何暂时停止交换/队列接收消息?
【发布时间】:2015-06-26 10:26:01
【问题描述】:

我的部署如下图:

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

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

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

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

【问题讨论】:

  • 我对@9​​87654321@一无所知,但由于这么长时间没有人回复,我将提供一些看起来合理且可行的东西,无论技术如何:在客户端和中继服务器 一个重定向服务器,用于将请求传递给中继服务器(如果它已启动)(或者如果您告诉它它已启动)。重定向服务器应该有 99.9% 的正常运行时间,然后所有的更新和东西都可以在中继服务器上完成。

标签: c# rabbitmq


【解决方案1】:

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

队列在被自动删除之前可以不用多长时间 (毫秒)。

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

See the documentation

【讨论】:

    【解决方案2】:

    我将尝试回答您的问题,因为我目前正在使用 RabbitMQ。据我所知,没有办法阻止消息被推送到队列中。您必须以编程方式实现这一目标。

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

    第 2 步:如果服务器正在运行,请继续将消息推送到队列,如果不知道要做什么。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 2011-04-22
      相关资源
      最近更新 更多