Spring Batch 介绍

企业领域内的许多应用程序需要批量处理,以便在任务关键型环境中执行业务操作。这些业务操作包括:spring-doc.cadn.net.cn

  • 自动化、复杂地处理大量信息,这些信息在无需用户交互的情况下能最高效地处理。这些操作通常包括基于时间的事件(如月末计算、通知或信函)。spring-doc.cadn.net.cn

  • 定期在非常大的数据集上重复处理复杂的业务规则(例如,保险福利判定或费率调整)。spring-doc.cadn.net.cn

  • 整合来自内部和外部系统的信息,这些信息通常需要在事务处理方式下进行格式化、验证和处理,并写入记录系统。批处理用于每天为企业处理数十亿笔交易。spring-doc.cadn.net.cn

Spring Batch 是一个轻量级、全面的批处理框架,旨在支持开发对日常企业系统运行至关重要的健壮批处理应用程序。Spring Batch 继承了人们所期望的 Spring 框架的特性(高生产力、基于 POJO 的开发方法以及普遍的易用性),同时让开发者在需要时能够轻松访问和使用更高级的企业服务。Spring Batch 并非一个调度框架。目前商业和开源领域已有许多优秀的企业级调度器(例如 Quartz、Tivoli、Control-M 等)。Spring Batch 的设计目的是与调度器协同工作,而非替代调度器。spring-doc.cadn.net.cn

Spring Batch 提供了在处理大量记录时必不可少的可复用功能,包括日志记录与追踪、事务管理、作业处理统计、作业重启、跳过机制以及资源管理。它还提供更高级的技术服务和特性,通过优化和分区技术实现超大规模和高性能的批处理作业。您可以在简单的使用场景(例如将文件读入数据库或运行存储过程)以及复杂的大容量使用场景(例如在数据库之间迁移大量数据、进行数据转换等)中使用 Spring Batch。高容量的批处理作业可以以高度可扩展的方式利用该框架来处理海量信息。spring-doc.cadn.net.cn

背景

虽然开源软件项目及相关社区更加关注基于 Web 和微服务的架构框架,但在满足基于 Java 的批处理需求方面,可复用的架构框架却明显缺乏关注,尽管企业 IT 环境内对此类处理的需求持续存在。由于缺乏标准且可复用的批处理架构,导致客户企业 IT 部门内部涌现出大量一次性、自研的解决方案。spring-doc.cadn.net.cn

SpringSource(现为 VMware)与埃森哲携手合作,共同推动了这一变革。埃森哲在实施批处理架构方面拥有丰富的行业实践和技术经验,SpringSource 具备深厚的技术积累,而 Spring 框架则拥有经实践验证的编程模型。这三者的结合自然形成了一种强大的合作关系,旨在打造高质量、贴合市场需求的企业级 Java 软件,填补该领域的重要空白。两家公司曾与多家客户合作,这些客户正通过开发基于 Spring 的批处理架构解决方案来解决类似的问题。来自客户的反馈提供了宝贵的额外细节和现实约束条件,有助于确保最终方案能够有效应对客户在实际业务中面临的挑战。spring-doc.cadn.net.cn

埃森哲(Accenture)将其先前专有的批处理架构框架贡献给了 Spring Batch 项目,并投入了提交者资源以推动支持、功能增强以及现有特性集的完善。埃森哲的贡献基于其数十年来在构建批处理架构方面的丰富经验,涵盖了最近几代平台:从大型机上的 COBOL,到 Unix 上的 C++,再到如今无处不在的 Java。spring-doc.cadn.net.cn

Accenture 与 SpringSource 的协作旨在推动软件处理方法、框架和工具的标准化,使企业用户在创建批处理应用程序时能够一致地使用这些资源。希望为其企业 IT 环境提供标准且经过验证解决方案的公司和政府机构均可从 Spring Batch 中受益。spring-doc.cadn.net.cn

使用场景

一个典型的批处理程序通常:spring-doc.cadn.net.cn

Spring Batch 自动化了这种基础的批处理迭代,提供了将相似事务作为一组进行处理的能力,通常是在无需任何用户交互的离线环境中。批处理作业是大多数 IT 项目的一部分,而 Spring Batch 是唯一提供稳健、企业级解决方案的开源框架。spring-doc.cadn.net.cn

业务场景

Spring Batch 支持以下业务场景:spring-doc.cadn.net.cn

技术目标

Spring Batch 具有以下技术目标:spring-doc.cadn.net.cn

  • 让批量开发人员使用 Spring 编程模型:专注于业务逻辑, 让框架处理基础设施。spring-doc.cadn.net.cn

  • 在基础设施、批处理执行环境和批处理应用程序之间提供清晰的关注点分离。spring-doc.cadn.net.cn

  • 提供通用的核心执行服务作为接口,供所有项目实现。spring-doc.cadn.net.cn

  • 提供核心执行接口的简单和默认实现,可以“开箱即用”。spring-doc.cadn.net.cn

  • 通过使用 Spring 框架在所有层级中,让服务的配置、定制和扩展变得简单易行。spring-doc.cadn.net.cn

  • 所有现有的核心服务都应易于替换或扩展,且不会对基础设施层产生任何影响。spring-doc.cadn.net.cn

  • 提供一个简单的部署模型,其中架构 JAR 与应用程序完全分离,并使用 Maven 构建。spring-doc.cadn.net.cn