利用Spring Cloud数据流搭建异质系统场景下的数据交换

人气:164 发布:2023-01-03 标签: spring-cloud-stream spring-cloud-dataflow

问题描述

我有一个涉及用不同语言(Java、Python、C#等)编写的多个应用程序的用例,我想在这些应用程序之间创建几个流。下面给出了一个说明性的例子。

我正在尝试通过一个编排层找到完成此任务的最佳方法,该编排层完成所有幕后工作,包括记账、部署、消息队列创建和绑定等。

为此,我正在研究Spring Cloud数据流(SCDF)。然而,SCDF被设计为专门为Spring引导应用程序创建数据集成管道。但在我们可能有用各种语言编写的不同类型的应用程序的情况下,是否有可能采用/适应SCDF?

脑海中可能浮现的想法是使用连接器。所以我的另一个问题是,在这种情况下,是否可以使用连接器建立通信,如果可以,是否已经开发/提供了连接器?

推荐答案

如您所说,SCDF通过Spring Cloud Stream/Spring Cloud Task更加专注于基于Spring/JAVA的编程模型,在此之上,SCDF提供了编排层来部署和规模化管理这类应用。

您试图对SCDF执行的操作,虽然它是feasible(在Python中为例),但它不是开箱即用的,具有出色的开发体验。

它不是很好,因为没有任何像Spring Cloud Stream这样的用于其他编程语言(例如:Python或.Net、JS)的自动配置组件或框架。这意味着您需要做的不仅仅是用选择的语言编写业务逻辑,包括在应用程序中连接和绑定Message Broker语义(请参阅上面共享的链接中的Python示例)。

尽管如此,我们正在构建下一代SCDF功能,该功能将从头开始更具体地关注多语言支持。Spring Cloud Stream的绑定器/绑定功能作为侧车运行,与该侧车交互的用户容器(即:业务逻辑)可以用您选择的编程语言编写和包装。类似SCDF的编排层将位于此数据平面的顶部,因此您可以以一致的方式协调、部署和观察工作负载。

在所有这些早期的设计思维和叙事成熟之前,你可以按照Python的食谱暂时自己组装活动部件。

19