Spring Batch批处理框架

刘相
批处理编程之美 这是一部论述批处理程序编程的书。在信息系统中,联机和批处理是计算机处理的两种基本模式,前者快速响应、超时中断、密集并发,后者处理时间长、异常需要支持重做、通常以顺序执行。早期的计算机系统多采用批处理的处理模式,客户机/服务器架构的产生让联机模式越来越多地被采用,但批处理模式一直在信息系统中起着重要作用,随着OLAP、大数据等新技术的应用,批处理的处理模式又成为热点,例如在传统银行IT系统中每日动辄运行上万个批处理作业,在互联网应用中,腾讯、阿里每日的批处理作业可达百万量级的水平。 编程之美,美在架构,架构之美,美在抽象,只有具备充分理解复杂业务场景的格局,才能进行将复杂问题做简单化的抽象。同联机模式汗牛充栋的著作、框架相比,批处理模式的抽象不多,著名的MapReduce就是其中之一,MapReduce将大批数据的处理过程进行了抽象,而Spring Batch则是对编写批处理程序本身的特性进行了抽象。通过将批处理程序分解为Job和Job Step两个部分,将处理环节定义为数据读、数据处理和数据写三个步骤,将异常处理机制归结为跳过、重试、重启三种类型,将作业方式区分为多线程、并行、远程、分区四大特征,正所谓增一分则肥,减一分则瘦。类似之美,Spring系列项目还有很多,例如Spring Framework对依赖注入的抽象,Spring integration中利用消息、队列、处理器三个概念的组合对集成模式的抽象,都让我叹为观止。 当相相【注】递给我他的新作时,我吃了一惊,惊在他“悄无声息”地完成了这样一个大部头作品,迫不及待地有一种先睹为快的冲动。我发现,书中通过对Spring Batch本身的论述,让我体会到了Spring Batch的精髓,也更加深刻地理解了批处理编程模式,还看到了相相对信息系统中如何使用这一框架的见解,毕竟信息系统中的批处理程序,不仅仅是…