批处理框架-spring Batch

时间:2021-08-09 08:14:17

并发处理业务

数据量大,并发度高,要支持事物,回滚,并发机制。事务、并发、监控、执行等,并不提供相应的调度功能。因此,如果我们希望批处理任务定期执行,可结合 Quartz 等成熟的调度框架实现。

业务场景:

///分布式下面的批处理系统有Hadoop,有时间可以研究一下,它需要特定的场景

批处理框架-spring Batch

批处理框架-spring Batch

批处理框架-spring Batch

批处理框架-spring Batch

================================================================================================

1.系统业务量很大的情况下,可以现将业务暂时存储下来,在系统不忙的情况下进行批量的处理(就是时候进行归档处理),Spring Batch刚好就是这样的一个框架。

2.主要有基础层,核心层,应用层

批处理框架-spring Batch

3.设计

批处理框架-spring Batch

JobRepository:批处理的任务仓库-----所有提交待处理的批处理任务

JobLanucher:批处理的调度管理器------启动批处理服务,开始处理

Job:具体的批处理作业----------------具体的批处理作业 ?这个可以挂接我们自己的业务

Step:一个批处理作用的一个过程

ItemReader:读取---获取数据

ItemProcessor:处理数据

ItemWriter:写入持久化数据

上述就是批处理的一个处理流程,Spring Batch给我们统一管理,我们仅仅把自己的业务挂接在其组件上即可。

============================================================================================

1、commit-interval:批量进行提交(写入)--reader数目为commit-interval数目时,writer提交写入。

2、retry-limit:此步骤失败后重拾的最大次数,如果超过这个数目,就不会重试。

3、retryable-exception-classes:重试的条件(一般就是通过异常进行中断或者自定义策略)-include,exclude

4、retry-policy:自定义重试的策略----就是条件是什么就可以知道要重试了,有这个retryable-exception-classes不生效SkipPolicy

5、skip-limit:出错进行跳过

6、skippable-exception-classes:-include,exclude

7、skip-policy:自定义策略RetryPolicy

注:任务失败后,首先应该重试几次,如果不行的话,再采用Skip机制,采用Listeners机制记录Log记录(CheckPoint),之后进行任务重做,其次在进行任务的重新启动执行。

组件对外的挂节点—接口,我们可以挂接我们的组件在其架构上--StepListenerSupport,RetryListener,SkipListener,SkipPolicy,RetryPolicy,ItemReader、ItemWriter、ItemProcessor,Tasklet

=============================================================================================

1.tasklet--实现Tasklet接口即可

2.tasklet-chunk---里面有reader,writer,processor

3.listeners-监听器

==============================================================================================

1、split并发--task-executor

2、decision

3、

=============================================================================================

截图来自网络。

可以作为ESB端的批处理组件