Spring Batch批处理框架初探

关于spring batch

spring batch就是一个轻量级的批处理框架,他的轻量级是相对于MapReduce、Spark之类的集群批处理架构来说的。虽然spring batch支持机器集群,但是多用的是单机的多线程并行处理。

大家都知道MapReduce适合超大型数据量的批量处理,对于几分钟,几十秒钟的处理就不要放到Mapreduce上了,这只会让处理时间更长,因为MapReduce的任务分配和启动过程就要消耗1-2分钟。

另外对于一些不是特别复杂的批处理,如果手头没有Hadoop这样的集群可用,而且一台电脑多线程处理就足够应付时,spring batch会是一个很好的选则。(当然,如果写一个简单的批处理脚本够用,那么,首选批处理脚本。)

但是,由于官方的教程不太适合初学者不快速的上手,这篇教程是大概两个礼拜时间集中看spring batch相关内容的总结。这里整理的顺序将会尽量从适合学习和入门。

spring batch能做什么?

spring batch用来做批处理,批处理最早基本用来指脚本,比如批处理脚本,就是把一系列的操作写到一个bat或者sh文件里面,一次调用,脚本里面的一系列操作就按照顺序逐条指令执行了。

也就是说,批处理首先是能够包含一系列的处理指令,并且可以指定顺序,然后这些指令按照指定的顺序执行。然而现如今是一个分布式的时代,和一个水平扩展远大于单机性能的时代,大多优秀的产品都在支持并行或者集群,spring batch在这两方面支持的怎么样呢?

spring batch具备工作流引擎的相似功能,可以在xml配置文件中配置一系列相互关联的步骤。你需要配置一个任务(Job),在任务里面定义多个Step,Step和Step之间通过next标签指明前后关系。

同时,他支持同一个任务的多线程、多进程、多服务器处理。接下来把相关资料分类整理如下:

基本使用

sping batch的最简单程序

在这个最简单的示例中,你会看到组成Job的Step可以是自定义的一个tasklet,也可以是使用spring batch提供的标准的ItemReader、ItemProcesser、ItemWriter组成的一个tasklet。

不同文件类型的读写示例

spring batch默认支持文本文件、XML文件、数据库的读和写,提供了内置的ItemReader和ItemWriter。

配置复杂的业务流程

结合quartz或者spring schedule定时触发

quartz+spring batch做到定时触发批处理任务

spring schedule + spring batch定定时触发-英文

多文件读入

Spring Batch MultiResourceItemReader example

spring batch并行处理

spirng batch并行与扩展

这一篇是中文的,写的其实不如官网清楚,下面是官网的地址:

Scaling and Parallel Processing

事件监听

SPRING BATCH 错误通知机制

spring batch admin管理job运行

spirng batch admin工具介绍

文章写的不是特别详细,但是已经给出了足够的线索,也就是需要把JobRepository定义成数据库存储形式。

配置JobRepository-官网

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值