(一)Spring Batch 简介

1. 什么是Spring Batch

Spring Batch是由SpringSource和Accenture(埃森哲)合作开发的。

Spring Batch框架通过提供丰富的即开即用的组件和高可靠性、高扩展性的能力,使得开发批处理应用的人员专注于业务的处理,提升批处理应用的开发效率,通过Spring Batch可以快速地构建出轻量级的健壮的并行处理应用。

Spring Batch是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完成批处理任务。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。如果需要使用调用框架,在商业软件和开源软件中已经有很多优秀的企业级调度框架(如Quartz、Tivoli、Control-M、Cron等)可以使用。

现代互联网企业、金融业、电信业甚至传统行业通过OLTP(联机事务处理)的业务系统积累了海量企业数据,需要企业应用能够在关键任务中进行批量处理来操作业务逻辑。通常情况下,此类业务并不需要人工参与就能够自动高效地进行复杂数据处理与分析。这类工作被称之为“批处理”。

典型的批处理应用通常从数据库、文件或队列中读取数据,之后使用一些方法处理数据(抽取、分析、处理、过滤等),最终使用修改过的格式将数据写回目标系统。通常在一个无需用户交互的离线环境下,Spring Batch能够自动进行基本的批处理迭代,也能够为一个数据集提供事务保证。

2. Spring Batch核心架构

 基础构架层:提供通用的读(ItemReader)、写(ItemWriter)和服务处理(如:RetryTemplate:重试模板;RepeatTemplate:重复模板,可以被应用层和核心层使用)。

核心层: 包含Spring Batch启动和控制所需要的核心类,如:JobLauncher、Job和step等。

应用层: 包含所有的批处理作业,通过Spring框架管理程序员自定义的代码。

3. Spring Batch 特点

1. 面向Chunk的处理,支持多次读、一次写,避免了多次对资源的写入,大幅提升了批处理应用的处理效率。

2. 默认采用Spring提供的声明式事务管理模型,面向Chunk的操作支持事务管理,同时支持为每个tasklet操作设置细粒度的事务配置:隔离级别、传播行为、超时设置等。

3. Spring Batch框架自动记录Job的执行情况,包括Job的执行成功、失败、失败的异常信息,Step的执行成功、失败、失败的异常信息,执行次数,重试次数,跳过次数,执行时间等,方便后期的维护和查看。

4. Spring Batch框架支持作业的跳过、重试、重启能力,避免因错误导致批处理作业的异常中断,例如如下操作。

● 跳过(Skip):通常在发生非致命异常的情况下,应该不中断批处理应用;

● 重试(Retry):发生瞬态异常情况下,应该能够通过重试操作避免该类异常,保证批处理应用的连续性和稳定性;

● 重启(Restart):当批处理应用因错误发生错误后,应该能够在最后执行失败的地方重新启动Job实例。

待续。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值