Spring云流

Spring cloud stream

我最近一直在与 spring 云流 rabbitmq 生产者和消费者合作。是否有关于应在何处创建队列的约定?

Should the queue be created on the consumer application

Should the queue be created on the producer application

我个人在消费者端设置队列,在生产者端设置交换。我在工作中得到了一些反馈,id 并不重要,但我不敢苟同。

如果队列是在消费者中创建的,每次出现新应用程序时,您都不会更改任何代码,只需在交换中绑定队列和路由键即可。

这样正确吗?

通常情况下,您拥有的是正确的;通常生产者不知道队列,只知道交换器和路由键。

有一种机制可以在生产者端创建队列(通过 requiredGroups 属性)。添加它是因为,如果您先部署生产者,您可能会丢失消息,因为 Rabbit 默认会丢弃不可路由的消息。

只要您在生产者之前部署消费应用程序,就可以"better"在消费者端配置队列。