
Spring Batch提供了很多非常实用的组件,包括了日志/跟踪、事务管理、作业处理统计、作业重新启动、跳过和资源管理。它还提供了更先进的技术服务和功能,支持通过优化和分区技术实现极高容量和高性能的批处理作业。Spring Batch既可以用于简单的用例(例如将文件读入数据库或运行存氏没储过程),也可以用于复杂的、大容量的用例(例如在数据库之间移动大容量的数据、转换数据等等)。高容量批处理作业可以以高度可伸缩的方式利用框架来处理大量信息。
但 *** 作起来就很复杂。不方便调试,尽管它内置有调试功能,但由于在转换中, *** 作都歼锋纳是并行的,单步调试比较基高难实现。内存消耗大,本身界面跑起来已经是比较耗内存的,而作业中数据量大的时候,内存消耗更大。
批处理任务是大多数IT项目的一个重要组成部分,批处理在业务系统中负责处理海量的数据,无须人工干预就能够自动高效的进行复杂的数据分析和处理。批处理会定期读入批量数据,经过相应的业务处理进行归档的业务 *** 作,批处理的特征是自动执行,处理的数据量大,定时执行。将整个批处理的流程按逻辑划分可以分为读数据,处理数据和写数据。以下是整理的springbatch框架的简介知识,希望能帮助到大家。
springbatch对批处理本身的特性进行了抽象,将批处理作业抽象为job和jobstep,将批处理的处理过程分解为数据读,数据处理和数据写。
将异常处理机制分为跳过,重启和重试。将作业的分区分为多线程,并行远程和分区。
springbatch不是一个调度框架,但需要调度框架来配合完成批处理任务,它只关注批处理相关的任务问题,但没有提供相应的调度功能,如果需要使用调度功能,需要使用调度框架,这里介绍一个比较常用的调度框架quartz,可以配合springbatch完成批处理的任务调度。
springbatch的架构分为三层:基础架构层,核心层和应用层。应用层包含所有的批处理作业,核心层主要提供JobLauncher、Job和step,基础架构层主要提供通用的读(ItemReader)、写(ItemWriter)和服务处理(如:RetryTemplate重试模板;RepeatTemplate:重复模板),Spring
batch的三层架构体败旅乱系使得Springbatch框架可以在不同的层级进行扩展,避免不同层级之间的相互影响。
job的介绍
批处理的作业是由一组step组成,同时job本身也是配置文件的顶级元素。每个察档作业都有自己的名字,可以定义step的执行顺序,以及定义作业是否可以重启。job执行的时候会生成一个jobinstance(作业实例)和一个jobexecution(作业执行器)。jobinstance包含执行job期间产生的数据以及job执行的状态信息;1个job可以对应多个jobinstance,1个jobinstance可以对应多个jobexecution。镇竖
job的配置的主要属性有id(作业的唯一标识)、job-repository(定义作业仓库)、incrementer(作业参数递增器)、restartable(作业是否重启)、parent(指定该作业的父作业)、abstract(定义作业是否抽象)。
step的介绍
step表示作业中一个完整的步骤,一个job可以由一个或者多个step组成,step主要负责批处理运行过程中的主要业务逻辑的实现。霍营电脑培训认为每次step执行的时候会生成一个或者多个jobexecution,每次任务执行失败的时候,等到下次重新执行该任务的时候就会为该任务的step重新生成一个stepexecution。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)