我的要求类似于Content based routing using Spring Cloud Dataflow中的问题。 我想要一个路由器应用程序,该应用程序将根据有效负载将消息调度到特定的处理程序应用程序。
流程如下所示。
答案 0 :(得分:2)
您仍然可以使用Spring Cloud Data Flow中的named destinations和router
接收器应用程序来构建类似于上面(您在问题中提到的内容)的流。
例如,您将具有一组流,如下所示:
stream create http-router --definition "http | router"
根据http
源应用程序中的内容,router
接收器应用程序将创建适当的中间件组件(例如,在RabbitMQ的情况下进行交换,在Apache Kafka的情况下进行主题创建),由路由器接收器应用程序。一旦有了这些中间件组件,就可以使用named destinations
从那里构造流应用程序。
假设您使用Apache Kafka
并基于http
的内容,并且我们将destination-1
和destination-2
作为路由器创建的新主题,则可以构造流如下:
stream create processor1 --definition ":destination1 > Transform_1 > :final_message"
stream create processor2 --definition ":destination2 > Transform_2 > :final_message"
以上信息流的作用与您在上面发布的信息流相同。
使用命名目标的固有优势是您可以创建任意数量的流(这是由于创建的中间件基础结构的使用者组模型-主题,交换等)。