同一主题上有多个RabbitMQ队列,只有一个正在接收消息吗?

时间:2020-05-19 18:22:07

标签: rabbitmq

我正在使用微服务应用程序,其中有多个服务在侦听同一“时钟”服务,并通过RabbitMQ进行通信。

时钟服务每分钟都会向时间戳记CLOCK发送一条消息。

每个侦听器服务都有自己的队列,并且路由键设置为主题CLOCK。预期的结果是,当时钟服务发布一条消息时,所有侦听器服务都会同时接收到此消息。

但是,我看到的是该消息仅由一个侦听器接收;具体来说,无论哪个服务最近启动。如果我重新启动其他服务之一,它将开始接收消息,而先前接收它们的消息将停止。

这类似于所有服务共享一个队列时的预期行为。但这不是绝对。每个队列都有一个不同的名称,该名称是从关联服务的名称派生的,并加上一个唯一的int后缀以保持良好的状态。此外,所有队列都用exclusive=True初始化,并且所有队列都显示在Rabbit管理GUI中。

我设法通过重新启动RabbitMQ代理“修复”了问题,该代理将行为恢复为正常。但是,我不敢假设这种情况不会再次发生,因此我很想了解这种行为的潜在理论解释。

0 个答案:

没有答案