2016-12-27 80 views
0

在我的应用程序中,我使用Spring云流来集成Rabbit MQ。默认情况下,Spring云流将创建目标作为Rabbit MQ中类型主题的交换。如何配置春季云流来创建类型扇出的交换?Spring Cloud Stream Rabbit MQ扇出交换

+0

请解释你为什么需要'fanout'交换? –

+0

我们有一个[未解决的问题](https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/issues/34),以提供超过当前自由配置的更多选项。 –

+0

@ArtemBilan话题需要路由模式。我的Producer应用程序是一个Java应用程序,我正在使用Spring Cloud Stream与Rabbit MQ集成。我的客户应用程序是一个NodeJS应用程序,它订阅队列并将队列绑定到由制作人创建的交换。但是当生产者向交易所发布消息时,它不会进入队列。队列总是空的。我认为一个队列需要路由模式,而绑定到一个我无法使用spring云流配置的交换。所以我正在使用工作正常的类型扇出交换 – auhuman

回答

2
  1. 您绝对应该从消费者端或代理商绑定您的队列。这不应该是Spring Cloud流绑定器级别。为了您的使用情况,你可以考虑结合键为#

当队列绑定了“#”(哈希)结合键 - 它将收到的所有邮件,而不管路由关键的 - 就像在粉丝交流中一样。

https://www.rabbitmq.com/tutorials/tutorial-five-java.html

  • 你仍然可以使用你的消费者需要的扇出交换,但同样的代理绑定功能应参与绑定你的扇出交换这个SCST话题通过相同的#交换关键技巧。
  • +0

    谢谢@Artem Bilan。这是我提出的问题的替代解决方案/临时解决方案。但完全符合我的要求 – auhuman

    +0

    @Artem Bilan然后'Fanout'和'topic + routing key#'有什么区别? – piechuckerr

    +0

    在表演。 'Fanout'不会尝试检查'路由键'。 –

    相关问题