Spring Cloud数据流| Rabbit MQ交换没有被束缚

时间:2017-07-21 14:10:05

标签: spring-boot spring-cloud spring-cloud-stream spring-rabbit spring-cloud-dataflow

我很确定我错过了一些基本的东西:

我使用此拓扑创建了一个流程:

A | B | ç

这是A:

的application.properties
spring.cloud.stream.bindings.requestChannel.destination=events-exchange

这是B的

的application.properties
spring.cloud.stream.bindings.input.destination=events-exchange

C是OOTB日志接收器应用程序。

使用此设置,A | B很好,但C没有得到任何日志。虽然,B正在将消息传递给正确的交换,但是来自B |的链接C是不相交的。

请注意,我在部署期间未提供上述属性。它们是jar中的静态application.properties。

我应该如何让SCDF正确加入应用程序?围绕此问题的最佳做法/推荐方法是什么?我们有许多应用程序需要使用Rabbit Middleware加入,并寻找一种更简单,更不容易出错的方法。感谢。

1 个答案:

答案 0 :(得分:0)

如果您将B的输出设置为work.out,那么您也需要覆盖C的输入。 Spring Cloud Data Flow的作用是将相邻应用程序的输入和输出设置为公共值(从流/应用程序名称派生)。如果您正在覆盖其中一个,则应用程序会在您注意到时断开连接。虽然我们打算在将来以更好的方式支持覆盖中间目标,但A | B | C依赖于重新控制input/output与Spring Cloud数据流的绑定(您可以覆盖它,但正如您所注意到的那样) ,你需要明确两端)。作为在流中重命名目标的替代方法,您可以使用命名目标:http://docs.spring.io/spring-cloud-dataflow/docs/current/reference/html/spring-cloud-dataflow-stream-explicit-destination-names.html