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

标签 java spring elasticsearch java-8 spring-batch

我将从8 millons搜索索引加载记录的elastic,然后进行处理并将其保存到postgres database

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

  • 方法1.从Elastic加载1000条记录,并保留为
    对象,并使用postgres并行流将其持久化为java 8
  • 方法2。使用Spring Batch将1000条记录作为块加载,
    坚持到postgres

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

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

    最佳答案

    Here performance is more important for me



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

    对于此类可能需要数小时的工作,容错性和可重新启动性是IMO的主要关注点。如果您使用Spring Batch,则可以免费获得这些功能,而如果您使用原始Java 8并行流,则需要自己实现这些功能。

    关于java - 与Java 8并行流相比,Spring Batch的任何性能改进均可以处理大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62283905/

    相关文章:

    java - 根据用户输入计算最小值,同时排除循环终止号 (-1)

    scala - 什么是 `path.home` 变量以及如何设置它?

    java - 断言部分页面源代码不起作用

    java - 避免线程安全内存供应商中的 volatile 读取

    Spring Integration - 消息驱动 channel 适配器 - 转换器错误句柄、原始消息

    java - Java Spring mvc 中的 Angular Js 发布日期错误请求

    java - 考虑在您的配置中定义一个名为 'elasticsearchTemplate' 的 bean

    ruby-on-rails - 用 Searchkick on Rails 做一个专业术语 "more like this query"?

    elasticsearch - 使用 elasticsearch 仅搜索特定字段

    java - 如何在 Java 中检测 SQL 表的存在?