Ale*_*TRE 1 spring spring-cloud-dataflow
我开始使用Spring Dataflow,但遇到一些我无法回答的问题,请阅读文档并进行一些测试。任何澄清都将受到欢迎(如果您不能一次回答所有问题,请回答所有问题,如果需要,我将合并完整的回答)
Spring Dataflow旨在编写适用的工作流程,例如:的输出app A是的输入app B,依此类推。工作流程不需要是线性的,如的输出app A可以是两者的输入app B和app C。这样准确吗?
众所周知,流管道中的应用程序以“消息驱动”的方式进行通信。App A发送消息给代理(例如RabbitMQ或Kafka),并app B从中使用消息。我们的流程中可以有多个不同的经纪人。但是消息传递是在应用程序之间发送信息的唯一方法吗?例如,是否可以通过HTTP REST请求进行app A调用app B?如果是这样,怎么办?
由于应用程序依赖异步消息传递(请参见上面的问题),因此Dataflow的附加值是什么?我的意思是,如果您配置app A为向该foo主题发送消息,并app B使用来自同一主题的消息,则可以将它们分别部署(不使用Dataflow),并且它将起作用。据我了解,Dataflow仅提供一种一次性部署和取消部署所有组件的方法,而不是一个接一个地部署。那是对的吗 ?
像上一个问题一样,异步消息传递使您从定义流顺序中抽象出来(即,您可以在开始app B之前app A)。整个系统仅在两个应用程序都启动时才能工作,但它们甚至不需要彼此了解。唯一需要做的是,他们使用相同的代理和主题,一个用于发送消息,另一个用于获取消息。那么,为什么您绝对需要在Spring Cloud Dataflow中将一个应用程序的输出链接到另一个应用程序的输入?这是一种强制两个应用程序使用相同主题的方法,但这是全部吗?
小智 5
Spring Dataflow旨在编写适用的工作流程
Spring Cloud Data Flow(SCDF)是一项编排服务,可让您将微服务应用程序组合到一个统一的管道中。(今天)接受的应用程序基于Spring Cloud Stream(SCSt)或Spring Cloud Task(SCT)编程模型,因此您可以分别编排流和任务/批处理管道。根据要求,您可以操作线性或复杂的DAG类型的工作流程。
但是消息传递是在应用程序之间发送信息的唯一方法吗?
现在,是的。SCSt提供的当前的绑定器抽象支持消息传递通道,我们正在推广绑定模型。下一代正在发展,还增加了对KStream作为输入/输出以及Reactor的Flux作为输入/输出的支持。我们尚不支持RESTful绑定机制。
由于应用程序依赖异步消息传递(请参见上面的问题),因此Dataflow的附加值是什么?
您可以编排单个SCSt / SCT应用程序。独立的应用程序包括“活页夹连接信息”,“频道绑定目标”等属性,您应提供它们。有了分区和扩展之类的要求后,您将不得不保留更多这些应用程序属性。这是SCDF的业务流程层增加价值的地方。除了可以用于更快地创建流/批处理管道的DSL,REST-API,仪表板/ Flo外,SCDF还可以自动创建那些已知属性,以使用定义良好的命名约定连接应用程序。
数据流仅提供一种一次性部署和取消部署所有组件的方法,而不是一个接一个地部署和取消部署它们的方法。那是对的吗 ?
如果您使用一组应用程序部署流,则SCDF会按顺序部署它们。您可以取消部署,销毁和查询由应用程序组成的流的聚合状态。并且,对于任务,您可以启动,销毁和查询执行状态等。
为什么在Spring Cloud Dataflow中绝对需要将一个应用程序的输出链接到另一个应用程序的输入?
这还不清楚。对于流处理,在SCDF的上下文中至少需要2个应用程序(source和sink)。你可以,但是,建立一个集合体应用使用SCST和编排聚合(源,处理器(小号)和汇)作为单个单元,太。
| 归档时间: |
|
| 查看次数: |
468 次 |
| 最近记录: |