Spring批处理

时间:2020-02-23 14:35:45  来源:igfitidea点击:

企业希望更快,更准确地执行任务。
此类数据的处理包括每日报告生成,无需人工干预即可处理大量数据。
Spring Batch是大多数任务的解决方案。
它使您能够以事务方式处理批量数据,并以高精度和速度执行日常活动。

Spring 批处理(Batch)

  • Spring批处理基于spring框架,非常轻巧。
    顾名思义,spring batch的核心概念是批量处理数据。

  • 它基于OOPS概念并使用基于POJO的开发。

  • Spring Batch使用优化和分区技术为大量和高性能批处理作业提供了高级服务和功能。
    它具有高度的可伸缩性,可用于处理大量数据。

  • 它不是调度程序,应与调度程序结合使用。

为什么我们需要Spring Batch?

让我们回顾一下历史,了解Spring批处理的需求。

尽管开源软件项目和开源社区主要关注基于Web和基于消息传递的体系结构框架,但是考虑到持续需要在服务器上处理此类处理,可重用的体系结构框架在满足基于Java的批处理需求方面处于次要地位。
企业内部的日常基础。

缺乏标准的,可伸缩的和可重复使用的批处理体系结构,导致许多开发了许多内部解决方案。

SpringSource和埃森哲合作创建了更标准和可重用的工具。
SpringSource在实施批处理体系结构方面拥有可靠的技术经验,其深厚的技术经验和spring久经验证的编程模型共同构成了强大的体系结构,可以创建高质量的,与市场相关的软件,从而填补企业Java的重要空白。

埃森哲与以前的专有批处理架构框架一起为Spring Batch项目做出了贡献,并提供了支持团队,增强功能和未来路线图。

Spring批处理用法

批处理程序从数据库,文件或者队列中读取大量记录,根据业务需求处理数据,然后以所需格式写回数据。

Spring Batch使这一基本的批处理迭代自动化,提供了将一组类似的交易作为一组处理的能力,所有这些都可以在离线环境中完成,而无需任何用户交互。

批处理作业是大多数IT项目的一部分,Spring Batch是唯一提供可靠的企业解决方案的开源框架。

让我们看看Spring批处理在业务上和技术上的一些实时用法。

Spring批业务用例

  • 在一个月底,必须将薪水发送到其员工的各自帐户中。

  • 月底可以使用Spring批处理工资单。

  • 发送大众传播电子邮件。

  • 用于每天,每周或者每月生成自动报告。

  • 自动执行业务工作流程,无需人工干预。

Spring Batch技术用例

  • 用于以定义的频率自动执行测试。

  • 这可用于以预定频率进行自动数据库更新。

  • 它可以与队列系统一起使用,以处理大量事务而不会发生任何故障。

  • 可以将Spring Batch与API结合使用,以执行诸如服务器或者应用程序的运行状况检查,负载测试的虚拟数据生成等任务。

Spring批处理架构

下图显示了Spring Batch的技术架构。

  • 应用程序:这包含开发人员根据业务需求编写的所有批处理作业和代码。

  • 批处理核心:它包含运行批处理作业所需的运行时类。
    JobLauncher,Job和Step实现等类是Batch Core的一部分。

  • 批处理基础结构:包含开发人员和框架本身使用的读取器和写入器服务。
    这些类是" ItemReader"和" ItemWriter"。
    它还包含重试读取和写入的服务。

Spring批处理

常规的弹簧批处理工作流程如下所示。

  • 在所示的工作流程中,使用作为Spring Batch一部分的读取器从数据库读取数据。

  • 然后,将数据传递到处理器以根据业务需求处理数据。

  • 现在将已处理的数据(已修改的数据)传递给写入器,写入器将数据写回到数据库中。

  • 数据源可以是数据库,文件,队列等。

Spring Batch的优势

让我们看看使用Spring Batch处理的优势。

  • 开发人员可以专注于实现业务逻辑,而框架将负责迭代。

  • 由于它是分层体系结构,因此不同层之间的去耦很容易。

  • 您可以实现一个核心业务逻辑,该逻辑可以在整个应用程序中用作通用实现。

  • 它在JAR级别上将基础结构和应用程序分隔开来,从而实现了轻松且可扩展的部署。