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进行代替比较好
看了这些概念,看看一图,了解一下
可以和MQ,RDBMS,FlatFile,Socket接入做系统集成。
上图目前个人感觉和Map-Reduce的编程模型接口相似,好像都是这种思想的模拟