服务再次上升后,Rabbitmq赢得了deliever消息

时间:2017-12-12 22:09:04

标签: rabbitmq spring-cloud spring-cloud-stream spring-rabbitmq

在我的系统中,我使用spring-cloud-stream和RabbitMQ来发送和接收事件。我让RabbitMQ运行,服务A 向上,服务B 向下运行。 服务A 服务B 发送事件。然后我打开我的服务B ,现在我希望Rabbit能够发布这个事件 - 但没有任何反应。这是正确的行为吗?我是RabbitMQ的新手,但我认为它应该保证所有事件最终都能找到它的接收器。我的应用程序很简单,基于example on github,没有额外的配置。我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果您的消费者没有group,则该队列是匿名的自动删除队列。你需要一个持久性的小组。请参阅consumer groups

生产者不会将队列绑定到交换机,消费者会这样做。

如果首先绑定生产者,则在新的使用者组之前,消息也将丢失。

使用RabbitMQ绑定器,如果您提前知道了使用者组,则可以设置...producer.requiredGroups属性,并且绑定队列。

请参阅the documentation

  

<强> requiredGroups

     

以逗号分隔的组列表,生产者必须确保消息传递,即使它们在创建后启动(例如,通过在RabbitMQ中预先创建持久队列)。