【发布时间】:2017-07-20 08:52:04
【问题描述】:
我们有多个用 Java、C#、nodeJS 和 python 编写的独立应用程序。所有这些应用程序都有一个共同的属性——它们使用 REST API 根据每个客户的时间表从某个源中提取数据并将其存储在 CSV 文件中,然后使用存储的过程将数据从 CSV 文件导入不同的 SQL 数据库。每个应用程序都用于集成来自不同第三方服务的数据。
例如 - 应用 A 从源 A' 获取数据,应用 B 从源 B' 获取数据
我正在考虑通过编写一个可以处理从不同来源提取数据的多租户单一应用程序来替换这些多个单独的应用程序。所有这些单独的小型应用程序都将配置为用 Java 编写的自定义作业。例如 - REST API 身份验证、创建 CSV 之前的数据预处理等。
所以,我想编写一个从源 A' 获取数据的作业(Java 文件)和另一个从源 B' 获取数据的作业。主应用程序将执行此自定义作业。主应用程序将支持诸如作业调度、日志记录等常用功能。
以后我打算用nifi来处理从CSV到SQL数据库的数据导入。
这是一个好方法吗?我打算用 Java 编写这个应用程序。
解决方案背后的原因
- 要维护多个代码库
- 拉取数据没有并发
- 所有这些应用程序都部署为单个实例
如果我需要更新一项作业,我需要部署整个应用程序。如何绕过这个过程?有什么方法可以只部署作业而不是整个应用程序?
构建此解决方案的好方法是什么?
【问题讨论】:
-
DBIS 可以帮助您整合数据。它是用Java编写的。不需要编写脚本。只有配置。 dbisweb.wordpress.com
-
如果公司有资源和预算,这种情况非常适合使用 Microsoft BizTalk Server。
标签: architecture microservices apache-nifi distributed-system