Spring Cloud Stream路由器接收器 - 那又怎样?

时间:2018-01-16 02:18:14

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

我创建了一个Spring Cloud Dataflow,它使用Spring Cloud Stream启动器应用程序中的router sink app。我正在使用RabbitMQ绑定的那个。这会自动创建带有路由器表达式结果的RabbitMQ Exchange(类型:主题)。我认为下一步是为每个路由器结果创建新的数据流。但是,rabbit source starter app只能配置为从队列中读取。当然,我可以手动创建队列并将它们绑定到自动创建的交换,但这是我应该做的吗?或者是否有一些我错过的配置会导致队列被自动创建和绑定?

2 个答案:

答案 0 :(得分:1)

每次创建作为目标侦听器的源应用程序时,默认情况下将使用活页夹的目标配置程序为您自动创建该目标。 因此,基本上您可以在生产者应用程序之前创建消费者应用程序,以确保在将消息发送到此类目标之前存在这些目标。在自动为您完成的数据流中 - "从右到左"应用程序的启动顺序,以确保消费者在生产者之前启动。

这是你要问的吗?

答案 1 :(得分:1)

Rabbit源应用程序旨在从现有基础架构中使用 - 队列必须已经存在(类似于接收器)。

要使用数据流从动态创建的目标中使用,您可以使用Named Destinations

stream create fromDynDest --definition=":myRoutedDest > process1 | process2 | sink"

甚至

stream create fromDynDest --definition=":myRoutedDest > sink"