2017-07-16 42 views
1

我想创建春季云数据流的流与一个源,两个并行处理器和一个水槽春季云数据流

  1. 一个来源即订单来源 和订单信息创建流将发布到RabbitMQ Topic/Queue。

  2. 两个并行处理器,即产品处理器和装运处理器 这两个处理器都将订户对RabbitMQ的主题/队列和获取命令消息和他们每个人都会单独地处理这些命令消息并更新订单和Order消息将发布到RabbitMQ Topic/Queue。

  3. 一个信宿即支付汇 水槽将是用户到RabbitMQ的主题/队列和将获得命令消息并基于该命令消息,将完成付款过程。

我尝试下面的命令和部署

流创建--name订单到付款--definition“订单源|产品处理器|出货处理器|付款汇”

但图形春季云数据流,它看起来像如下:

Stream Diagram

但我看起来像下面

Paraller processors

是否有可能做到这一点?由于Spring Cloud Data Flow不允许从一个源连接两个处理器,也无法以图形方式从两个处理器连接到一个接收器?

谢谢, David。

回答

4

您可以DAG使用命名目标数据流,请点击此处查看:http://docs.spring.io/spring-cloud-dataflow/docs/1.2.2.RELEASE/reference/htmlsingle/#spring-cloud-dataflow-stream-advanced

你需要通过一个名为目的地来发送邮件,并从他们组成的流动。如果您在阅读文档时遇到问题,请告诉我,我可以在此处发布示例。

+0

尝试与命名的目的地。 1. stream create --definition“order-source>:customSource”--name custom-order-source 2. stream create --definition“:customSource> shipment-processor | payment-sink”--name custom-shipment-to -payment 3. stream create --definition“:customSource> product-processor | payment-sink” - 名称定制产品到支付。似乎它工作正常。这是正确的方法吗?我正在尝试使用Spring云数据流的现有示例。没有Spring云数据流的示例来自https://dzone.com/articles/event-driven-microservices-using-spring-cloud-stre – David

+0

这是正确的方法吗?试图理解它背后的概念。指定的目的地只是一种方式来打破我面对不同流的问题,并且这是我尝试的一个流所不可能的?请纠正我,如果可以用不同的方式使用命名的目的地完成相同的操作。 – David

+1

是的,从文档:“有名的目的地可能被用作合并多个流的输出或多个消费者共享来自单个流的输出的方式。”所以是的,我们使用命名的目标来允许你想要的并行性类型。请记住,以图形方式拖放源的多个输出不会让我们知道您想要做什么:您是否正在分区?拆分?多路复用......因此,将流与指定目的地相结合可以为您提供这种灵活性:) –