一、简介
1.1 概述
Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。 Spring
Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring
框架的开发者或者企业更容易访问和利用企业服务; Spring Batch
提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。通过 Spring Batch
能够支持简单的、复杂的和大数据量的批处理作业。同时它也提供了优化和分片技术用于实现高性能的批处理任务。
1.2 特点
1、灵活性 - Spring批处理应用程序非常灵活。只需更改XML文件即可更改应用程序中的处理顺序。
2、 可维护性 - Spring批量应用程序易于维护。 Spring Batch作业包括步骤,每个步骤都可以进行分离,测试和更新,而不影响其他步骤。
3、可伸缩性 - 使用分区技术,可以缩放Spring Batch应用程序。 这些技术可以让你 -
并行执行作业的步骤。
并行执行单个线程。
4、可靠性 - 如果发生任何故障,可以通过拆除步骤来从停止的地方重新开始作业。
5、支持多种文件格式 - Spring Batch为XML,Flat文件,CSV,MYSQL,Hibernate,JDBC,Mongo,Neo4j等大量写入器和读取器提供支持。
6、多种启动作业的方式 - 可以使用Web应用程序,Java程序,命令行等来启动Spring Batch作业。
7、支持失败后自动重试。 跟踪批次执行期间和完成批次处理后的状态和统计数据。
1.3 使用场景
典型的批处理程序通常:
从数据库,文件或队列中读取大量记录。
以某种方式处理数据。
以修改后的形式写回数据。
Spring Batch 自动执行此基本批处理迭代,从而提供了将一组类似的事务作为一组处理的功能,通常在脱机环境中无需任何用户交互。批处理作业是大多数 IT Item 的一部分,Spring Batch 是唯一提供可靠的企业级解决方案的开源框架。
Business Scenarios
定期提交批处理
并行批处理:作业的并行处理
分阶段的企业消息驱动的处理
大规模并行批处理
失败后手动或计划重启
Sequences 处理相关步骤(扩展到工作流程驱动的批次)
部分处理:跳过记录(例如,回滚时)
整批处理,适用于小批处理或现有存储过程/脚本的情况
Technical Objectives
批处理开发人员使用 Spring 编程模型:专注于业务逻辑,并让框架处理基础结构。
在基础结构,批处理执行环境和批处理应用程序之间明确分离关注点。
提供通用的核心执行服务作为所有 Item 都可以实现的接口。
提供可以直接使用的核心执行接口的简单和默认实现。
通过在所有层中利用 spring 框架,轻松配置,定制和扩展服务。
所有现有的核心服务应易于替换或扩展,而不会影响基础架构层。
提供一个简单的部署模型,其架构 JAR 与使用 Maven 构建的应用程序完全分开。
先写到这,感觉这样描述不够简明扼要,接下来的内容又不知道怎么去总结!!!!!!!!!!!!!!!
先上中文文档连接:
https://www.docs4dev.com/docs/zh/spring-batch/4.1.x/reference/spring-batch-intro.html#spring-batch-intro