《spring batch 批处理框架》第1、2章

封面

《spring batch 批处理框架》第1、2章_第1张图片
spring-batch-book.png

总结:这是目前市面上唯一一本中文的spring batch 书籍,版本有点旧了,理念没多大变化,还是很值得一看的。全书分为3块,第一块简介和HelloWorld展示了挺多东西,看的有点晕。第二部分说的非常细,每个Reader,Writer都有demo演示,这块还不错。最后高级部分又是浮光掠影似的,仅仅演示一下。总的来说,相对于reference还是加上了很多内容,有学习意义;但是大部分都是演示性的代码,缺乏一个完整的应用案例,每个都告诉你怎么配,但是什么情况使用确没有说清楚。特别的是RepeatOperations部分完全没有,还需要自己根据文档去补充对应的知识。

第1章 Spring Batch简介

一、批处理

  1. 不需人工介入、自动高效进行复杂的数据处理分析,并能定期(可重复)地完成业务处理的程序。
  2. 特点:自动执行、数据量大(百万-亿,超过还是要用海量数据处理框架-handoop)
  3. 典型场景:文件类型的大批量导入、处理、导出、日终数据整理,转换等。

二、srping batch 批处理应用框架

  1. 业务场景: 定期执行、消息驱动、并行处理、手动重启、顺序执行

  2. 技术目标:
    a. 程序员专注于业务处理,让spring batch框架管理流程
    b. 分离批处理执行环境和应用
    c. 通用核心服务(由接口提供)
    d. 开箱即用的处理方式(默认的执行接口实现)
    e. 结合spring实现灵活的配置,扩展方式
    f. 默认的实现易扩展,替换
    g. 部署简单

  3. spring batch 架构

    《spring batch 批处理框架》第1、2章_第2张图片
    spring-batch-architecture.png

  4. 优势:轻量级、高健壮、提供开发效率
    a. 丰富的开箱即用组件(Reader、Writer),减少开发时间
    b. 面向Chunk的处理(写入针对批,兼顾效率和可靠性)
    c. 事务管理能力
    d. 元数据管理
    e. 易监控的批处理应用
    f. 丰富的流程定义
    g. 健壮的应用特性(跳过,重试,重启)
    h. 易扩展
    i. 可灵活复用先用的IT资产(通过Adapter封装)

  5. 2.0新特性(略)

  6. 2.2新特性(略)

  7. 搭建开发环境:

git clone https://github.com/spring-guides/gs-batch-processing.git
推荐从官网下载指引项目

第二章: Hello World

一、场景说明: 输入个人消费记录,生成对账单

二、项目准备

  1. 项目结构,代码量不大
  2. 对账单文件内容,领域对象,账单CreditBill

三、Job基础设施(Job-Context.xml)

包含:作业仓库、任务调度器、事务管理器。

四、对账Job配置:

元素,配置在job.xml中,包含reader,writer,processor三种Bean.

  1. ItemReader:用了spring batch提供的FlatFileItemReader,以及传入领域对象CreditBill
  2. ItemProcessor: 这个是自己实现的,通过<>泛型定义传入,传出对象类型
  3. ItemWriter:用了spring batch提供的FlatFileItemWriter.

五、执行Job

使用java调用JobExecution的方式

六、上述用到的概念说明.

《spring batch 批处理框架》第1、2章_第3张图片
spring-batch-core-concept.png

这章一上来就是完整工程的demo讲解,看起来确实有些吃力.不过稍微了解了概念,后面看的就顺了.

参考文章

一篇文章全面解析大数据批处理框架Spring Batch
http://geek.csdn.net/news/detail/128641
从头认识SpringBatch批处理框架
http://blog.csdn.net/u011659172/article/category/6105368
Spring Batch参考文档中文版(3.0-不全)
https://kimmking.gitbooks.io/springbatchreference/content/
Spring Batch - Reference Documentation
https://docs.spring.io/spring-batch/trunk/reference/html/index.html

你可能感兴趣的:(《spring batch 批处理框架》第1、2章)