微服务的批处理 - 弹簧服务设计?

时间:2018-05-18 15:43:51

标签: spring spring-batch batch-processing file-processing

我很想知道,您将在以下场景中采用哪种设计方法?

我有一个FTP服务器,我的java spring应用程序(服务1)将去取文件。然后我将该文件存储到S3存储桶。此文件最多可能有一百万条记录。将会有另一个需要读取此文件数据的微服务(服务2)。

  1. 您如何设计和公开来自service1的这些百万条记录,以便服务2可以读取这些记录?

  2. 您将在哪一方使用哪种技术堆栈?为什么?

    • 这两项服务将托管在相同的服务器上(目前为止)。
  3. 您能建议快速有效的解决方案吗?

    由于

1 个答案:

答案 0 :(得分:0)

这是我的方法。如果你的工作范围,我甚至不会创建2个服务。唯一的服务将使用Spring Integration和Spring Batch。

  • Spring Integration部分将从FTP获取文件并将其复制到S3并移交给Spring Batch进行处理
  • 使用Batch处理后,保存记录。

如果作业偶尔运行一次并且记录不多,我甚至不会使用Spring Batch。我只想使用Spring Integration并并行处理记录。但是如果你知道你将拥有数百万条记录和大量文件,你应该考虑使用Spring Batch进行批处理。