使用 Spring Cloud Data Flow 在异构系统场景中建立数据交换

Using Spring Cloud Data Flow to set up data exchanges in heterogeneous systems scenario

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

我正在尝试通过编排层找到实现该目标的最佳方法,该编排层执行所有幕后工作,包括簿记、部署、消息队列创建和绑定等。

为此,我正在探索 Spring 云数据流 (SCDF)。但是,SCDF 专门用于为 Spring 启动应用程序创建数据集成管道。但是,在我们可能有用各种语言编写的异构应用程序的情况下,employ/adapt SCDF 是否可能?

可能想到的想法是使用连接器。所以我的另一个问题是,在这种情况下是否可以使用连接器建立通信,如果可以,是否已经存在 developed/provided?

正如您所指出的,SCDF 通过 Spring Cloud Stream / Spring Cloud Task 更专注于 Spring/Java-based 编程模型,并且在其之上,SCDF 提供编排层部署此类应用程序并大规模管理它们。

您尝试使用 SCDF 做什么,虽然它是 feasible(Python 中的示例),但并没有开箱即用,具有出色的开发人员经验。

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

综上所述,我们正在构建下一代 SCDF 功能,这些功能将从头开始更具体地关注多语言支持。 Spring Cloud Stream 的 binder/binding 功能是 运行 作为 sidecar,与此 sidecar 交互的用户容器(即:业务逻辑)可以用您选择的编程语言编写和容器化。类似于 SCDF 的编排层将位于该数据平面之上,因此您可以以一致的方式编排、部署和观察所有工作负载。

在所有这些早期设计思维和叙述成熟之前,您可以暂时按照 Python 秘诀assemble 自行处理活动部分。