路由器作为Spring Cloud数据流中的处理器

时间:2019-07-19 04:46:05

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

我的要求类似于Content based routing using Spring Cloud Dataflow中的问题。 我想要一个路由器应用程序,该应用程序将根据有效负载将消息调度到特定的处理程序应用程序。

流程如下所示。

enter image description here

1 个答案:

答案 0 :(得分:2)

您仍然可以使用Spring Cloud Data Flow中的named destinationsrouter接收器应用程序来构建类似于上面(您在问题中提到的内容)的流。

例如,您将具有一组流,如下所示:

stream create http-router --definition "http | router"

根据http源应用程序中的内容,router接收器应用程序将创建适当的中间件组件(例如,在RabbitMQ的情况下进行交换,在Apache Kafka的情况下进行主题创建),由路由器接收器应用程序。一旦有了这些中间件组件,就可以使用named destinations从那里构造流应用程序。

假设您使用Apache Kafka并基于http的内容,并且我们将destination-1destination-2作为路由器创建的新主题,则可以构造流如下:

stream create processor1 --definition ":destination1 > Transform_1 > :final_message"
stream create processor2 --definition ":destination2 > Transform_2 > :final_message"

以上信息流的作用与您在上面发布的信息流相同。

使用命名目标的固有优势是您可以创建任意数量的流(这是由于创建的中间件基础结构的使用者组模型-主题,交换等)。