Spring Batch批处理以及编程模型

时间:2021-07-06 08:04:15

1.批处理:

  类似于SQL里面的批处理提交

2.场景:

  业务定时进行批处理操作,但是批处理的编程模型是怎么的呢?

3.开源框架

  Spring Batch

4.编程模型:

  reader-processor-writer

  JobLauncher - Job - JobExecution -JobParametersValidator

  JobExecution result = launcher.run(job, new JobParameters()); //runJob机制

5.策略

  a.批量提交,配置事务  commit-interval="1000"

  b.失败策略   skip-policy skip-limit skippable-exception-classes (我们在项目一般仅仅记录日志,之后人工进行处理或者重试)

  c.重试策略   retry-limit    retry-policy

  d.监控策略   Listeners

  e.工作流:

  f.map—reduce:Spliter/Parallel、Flow(发现Map-Reduce思想这里也有,BPM里面以及ESB都有这样的概念),结合到了线程池

6.与ESB进行集成

  支持集群部署,但是个人觉得内置的Flow有点别扭,因为这设计到了数据库内置的表结构,最好使用BPM进行代替比较好

看了这些概念,看看一图,了解一下

Spring Batch批处理以及编程模型Spring Batch批处理以及编程模型

Spring Batch批处理以及编程模型

Spring Batch批处理以及编程模型

可以和MQ,RDBMS,FlatFile,Socket接入做系统集成。

上图目前个人感觉和Map-Reduce的编程模型接口相似,好像都是这种思想的模拟