与Java 8并行流相比,Spring Batch中的任何性能改进都可以进行大量数据处理



我要加载8 million records from an弹性search index and then do processing and save it to aPostgres数据库"。

我想通过以下方式做到这一点。

  • 方法 1.从弹性加载 1000 条记录并保留 对象,并使用并行流将其保存到Postgresjava 8
  • 方法 2.使用 Spring 批处理加载 1000 条记录作为块和 坚持到Postgres

在这里,性能对我来说更重要。我想在更短的时间内插入所有记录。 与java 8并行流相比,spring batch的性能是否有任何改进?

请让我知道以更快的方式实现这种情况的最佳方法。

在这里,性能对我来说更重要

如果使用 Java 8 并行流,则仅限于一台计算机。但是,如果您使用 Spring Batch,则可以使用远程分区在多台计算机上运行作业。这是一个很大的区别,因为性能是您的首要任务。

对于这种可能需要数小时的作业,容错和可重启性是IMO的关键问题。如果您使用 Spring Batch,则可以免费获得这些功能,而如果您使用原始 Java 8 并行流,则需要自己实现它们。

最新更新