Spring Batch提供了可重复使用的功能,这些功能对于处理大量记录至关重要,包括记录/跟踪,事务管理,作业处理统计,作业重启,跳过和资源管理。它还提供更高级的技术服务和功能,通过优化和分区技术实现极高容量和高性能的批处理作业。简单和复杂的大批量批处理作业可以高度可扩展的方式利用框架来处理大量信息。
现代互联网企业、金融业、电信业甚至传统行业通过OLTP(联机事务处理)的业务系统积累了海量企业数据,需要企业应用能够在关键任务中进行批量处理来操作业务逻辑。通常情况下,此类业务并不需要人工参与就能够自动高效地进行复杂数据处理与分析。例如,定期对大批量数据进行业务处理(如银行对账和利率调整、或者跨系统的数据同步),或者是把从内部和外部系统中获取到的数据进行处理后集成到其他系统中去,这类工作被称之为“批处理”。“批处理”工作在面对复杂的业务以及海量的数据处理时,无需人工干预,仅需定期读入批量数据,然后完成相应业务处理并进行归档操作。
一般的典型批处理程序
Spring Batch 业务场景
Spring Batch 4.2.x
spring.batch
前缀下。这些指标可以发送到 Micrometer支持的任何监控系统)支持批量指标Spring Batch 4.1.x
@SpringBatchTest
注释,用于简化测试批处理组件@EnableBatchIntegration
注释,用于简化远程分块和分区配置JsonItemReader
并JsonFileItemWriter
支持JSON格式FlatFileItemWriterBuilder
API的增强功能Spring Batch 4.0.x
这种分层架构突出了三个主要的高级组件:应用程序,核心和基础架构。该应用程序包含开发人员使用Spring Batch编写的所有批处理作业和自定义代码。Batch Core包含启动和控制批处理作业所需的核心运行时类。它包括实现
JobLauncher
,Job
和Step
。Application和Core都建立在通用基础架构之上。此基础结构包含常见的读取器和编写器和服务(例如RetryTemplate
),应用程序开发人员(读取器和编写器,如ItemReader
和ItemWriter
)以及核心框架本身(重试,自己的库)都使用它们。