我创建了一个Spring Cloud Dataflow,它使用Spring Cloud Stream启动器应用程序中的router sink app。我正在使用RabbitMQ绑定的那个。这会自动创建带有路由器表达式结果的RabbitMQ Exchange(类型:主题)。我认为下一步是为每个路由器结果创建新的数据流。但是,rabbit source starter app只能配置为从队列中读取。当然,我可以手动创建队列并将它们绑定到自动创建的交换,但这是我应该做的吗?或者是否有一些我错过的配置会导致队列被自动创建和绑定?
答案 0 :(得分:1)
每次创建作为目标侦听器的源应用程序时,默认情况下将使用活页夹的目标配置程序为您自动创建该目标。 因此,基本上您可以在生产者应用程序之前创建消费者应用程序,以确保在将消息发送到此类目标之前存在这些目标。在自动为您完成的数据流中 - "从右到左"应用程序的启动顺序,以确保消费者在生产者之前启动。
这是你要问的吗?
答案 1 :(得分:1)
Rabbit源应用程序旨在从现有基础架构中使用 - 队列必须已经存在(类似于接收器)。
要使用数据流从动态创建的目标中使用,您可以使用Named Destinations。
stream create fromDynDest --definition=":myRoutedDest > process1 | process2 | sink"
甚至
stream create fromDynDest --definition=":myRoutedDest > sink"