图书简介:Spring Batch批处理框架
大数据时代批处理利器,国内首度原创解析Spring Batch框架。
内容简介:
《Spring Batch 批处理框架》全面、系统地介绍了批处理框架Spring Batch,通过详尽的实战示例向读者展示了Spring Batch框架对大数据批处理的基本开发能力,并对框架的架构设计、源码做了特定的剖析;在帮助读者掌握Spring Batch框架基本功能、高级功能的同时,深入剖析了Spring Batch框架的设计原理,帮助读者可以游刃有余地掌握Spring Batch框架。
《Spring Batch 批处理框架》分为入门篇、基本篇和高级篇三部分。入门篇介绍了批处理、Spring Batch的基本特性和新特性,快速入门的Hello World等内容引领读者入门,从而进入数据批处理的世界。基本篇重点讲述了数据批处理的核心概念、典型的作业配置、作业步配置,以及Spring Batch框架中经典的三步走策略:数据读、数据处理和数据写,详尽地介绍了如何对CVS格式文件、JSON格式文件、XML文件、数据库和JMS消息队列中的数据进行读操作、处理和写操作,对于数据库的操作详细介绍了使用JDBC、Hibernate、存储过程、JPA、Ibatis等处理。高级篇提供了高性能、高可靠性、并行处理的能力,分别向读者展示了如何实现作业流的控制,包括顺序流、条件流、并行流,如何实现健壮的作业,包括跳过、重试和重启等,如何实现扩展作业及并行作业,包括多线程作业、并行作业、远程作业和分区作业等,从而实现分布式、高性能、高扩展性的数据批处理作业。
目录
第1篇 入门篇
第1章 Spring Batch简介
1.1 什么是批处理
1.2 Spring Batch
1.2.1 典型场景
1.2.2 Spring Batch架构
1.3 Spring Batch优势
1.3.1 丰富的开箱即用组件
1.3.2 面向Chunk的处理
1.3.3 事务管理能力
1.3.4 元数据管理
1.3.5 易监控的批处理应用
1.3.6 丰富的流程定义
1.3.7 健壮的批处理应用
1.3.8 易扩展的批处理应用
1.3.9 复用企业现有IT资产
1.4 Spring Batch 2.0新特性
1.4.1 支持Java5
1.4.2 支持非顺序的Step
1.4.3 面向Chunk处理
1.4.4 元数据访问
1.4.5 扩展性
1.4.6 可配置性
1.5 Spring Batch 2.2新特性
1.5.1 Spring Data集成
1.5.2 支持Java配置
1.5.3 Spring Retry
1.5.4 Job Parameters
1.6 开发环境搭建
第2章 Spring Batch之Hello World
2.1 场景说明
2.2 项目准备
2.2.1 项目结构
2.2.2 准备对账单文件
2.2.3 定义领域对象
2.3 定义job基础设施
2.4 定义对账Job
2.4.1 配置ItemReader
2.4.2 配置ItemProcessor
2.4.3 配置ItemWriter
2.5 执行Job
2.5.1 Java调用
2.5.2 JUnit单元测试
2.6 概念预览
第2篇 基本篇
第3章 Spring Batch基本概念
3.1 命名空间
3.2 Job
3.2.1 Job Instance
3.2.2 Job Parameters
3.2.3 Job Execution
3.3 Step
3.3.1 Step Execution
3.4 Execution Context
3.5 Job Repository
3.5.1 Job Repository Schema
3.5.2 配置Memory Job
Repository
3.5.3 配置DB Job Repository
3.5.4 数据库Schema
3.6 Job Launcher
3.7 ItemReader
3.8 ItemProcessor
3.9 ItemWriter
第4章 配置作业Job
4.1 基本配置
4.1.1 重启Job
4.1.2 Job拦截器
4.1.3 Job Parameters校验
4.1.4 Job抽象与继承
4.2 高级特性
4.2.1 Step Scope
4.2.2 属性Late Binding
4.3 运行Job
4.3.1 调度作业
4.3.2 命令行执行
4.3.3 与定时任务集成
4.3.4 与Web应用集成
4.3.5 停止Job
第5章 配置作业步Step
5.1 配置Step
5.1.1 Step抽象与继承
5.1.2 Step执行拦截器
5.2 配置Tasklet
5.2.1 重启Step
5.2.2 事务
5.2.3 事务回滚
5.2.4 多线程Step
5.2.5 自定义Tasklet
5.3 配置Chunk
5.3.1 提交间隔
5.3.2 异常跳过
5.3.3 Step重试
5.3.4 Chunk完成策略
5.3.5 读、处理事务
5.4 拦截器
5.4.1 ChunkListener
5.4.2 ItemReadListener
5.4.3 ItemProcessListener
5.4.4 ItemWriteListener
5.4.5 SkipListener
5.4.6 RetryListener
第6章 读数据ItemReader
6.1 ItemReader
6.1.1 ItemReader
6.1.2 ItemStream
6.1.3 系统读组件
6.2 Flat格式文件
6.2.1 Flat文件格式
6.2.2 FlatFileItemReader
6.2.3 RecordSeparatorPolicy
6.2.4 LineMapper
6.2.5 DefaultLineMapper
6.2.6 LineCallbackHandler
6.2.7 读分隔符文件
6.2.8 读定长文件
6.2.9 读JSON文件
6.2.10 读记录跨多行文件
6.2.11 读混合记录文件
6.3 XML格式文件
6.3.1 XML解析
6.3.2 Spring OXM
6.3.3 StaxEventItemReader
6.4 读多文件
6.5 读数据库
6.5.1 JdbcCursorItemReader
6.5.2 HibernateCursorItem
Reader
6.5.3 StoredProcedureItem
Reader
6.5.4 JdbcPagingItemReader
6.5.5 HibernatePagingItem
Reader
6.5.6 JpaPagingItemReader
6.5.7 IbatisPagingItemReader
6.6 读JMS队列
6.6.1 JmsItemReader
6.7 服务复用
6.8 自定义ItemReader
6.8.1 不可重启ItemReader
6.8.2 可重启ItemReader
6.9 拦截器
6.9.1 拦截器接口
6.9.2 拦截器异常
6.9.3 执行顺序
6.9.4 Annotation
6.9.5 属性Merge
第7章 写数据ItemWriter
7.1 ItemWrite
7.1.1 ItemWriter
7.1.2 ItemStream
7.1.3 系统写组件
7.2 Flat格式文件
7.2.1 FlatFileItemWriter
7.2.2 LineAggregator
7.2.3 FieldExtractor
7.2.4 回调操作
7.3 XML格式文件
7.3.1 StaxEventItemWriter
7.3.2 回调操作
7.4 写多文件
7.4.1 MultiResourceItemWriter
7.4.2 扩展MultiResourceItem
Writer
7.5 写数据库
7.5.1 JdbcBatchItemWriter
7.5.2 HibernateItemWriter
7.5.3 IbatisBatchItemWriter
7.5.4 JpaItemWriter
7.6 写JMS队列
7.6.1 JmsItemWriter
7.7 组合写
7.8 Item路由Writer
7.9 发送邮件
7.9.1 SimpleMailMessageItem
Writer
7.10 服务复用
7.10.1 ItemWriterAdapter
7.10.2 PropertyExtracting
DelegatingItemWriter
7.11 自定义ItemWrite
7.11.1 不可重启ItemWriter
7.11.2 可重启ItemWriter
7.12 拦截器
7.12.1 拦截器接口
7.12.2 拦截器异常
7.12.3 执行顺序
7.12.4 Annotation
7.12.5 属性Merge
第8章 处理数据ItemProcessor
8.1 ItemProcessor
8.1.1 ItemProcessor
8.1.2 系统处理组件
8.2 数据转换
8.2.1 部分数据转换
8.2.2 数据类型转换
8.3 数据过滤
8.3.1 数据Filter
8.3.2 数据过滤统计
8.4 数据校验
8.4.1 Validator
8.4.2 ValidatingItemProcessor
8.5 组合处理器
8.6 服务复用
8.6.1 ItemProcessorAdapter
8.7 拦截器
8.7.1 拦截器接口
8.7.2 拦截器异常
8.7.3 执行顺序
8.7.4 Annotation
8.7.5 属性Merge
第3篇 高级篇
第9章 作业流Step Flow
9.1 顺序Flow
9.2 条件Flow
9.2.1 next
9.2.2 ExitStatus VS
BatchStatus
9.2.3 decision条件
9.3 并行Flow
9.4 外部Flow定义
9.4.1 Flow
9.4.2 FlowStep
9.4.3 JobStep
9.5 Step数据共享
9.6 终止Job
9.6.1 end
9.6.2 stop
9.6.3 fail
第10章 健壮Job
10.1 跳过Skip
10.1.1 配置Skip
10.1.2 跳过策略SkipPolicy
10.1.3 跳过拦截器
10.2 重试Retry
10.2.1 配置Retry
10.2.2 重试策略RetryPolicy
10.2.3 重试拦截器
10.2.4 重试模板
10.3 重启Restart
10.3.1 重启Job
10.3.2 启动次数限制
10.3.3 重启已完成的任务
第11章 扩展Job、并行处理
11.1 可扩展性
11.2 多线程Step
11.2.1 配置多线程Step
11.2.2 线程安全性
11.2.3 线程安全Step
11.2.4 可重启的线程
安全Step
11.3 并行Step
11.4 远程Step
11.4.1 远程Step框架
11.4.2 基于SI实现远程Step
11.5 分区Step
11.5.1 关键接口
11.5.2 基本配置
11.5.3 文件分区
11.5.4 数据库分区
11.5.5 远程分区Step
图书简介:Spring Batch批处理框架的更多相关文章
- Spring Batch 批处理框架
<Spring Batch 批处理框架>基本信息作者: 刘相 出版社:电子工业出版社ISBN:9787121252419上架时间:2015-1-24出版日期:2015 年2月开本:16开页 ...
- spring batch批处理框架学习
内如主要来自以下链接: http://www.importnew.com/26177.html http://www.infoq.com/cn/articles/analysis-of-large-d ...
- Spring Batch 批处理框架介绍
前言 在大型的企业应用中,或多或少都会存在大量的任务需要处理,如邮件批量通知所有将要过期的会员,日终更新订单信息等.而在批量处理任务的过程中,又需要注意很多细节,如任务异常.性能瓶颈等等.那么,使用一 ...
- Spring Batch 批处理原则与建议
Spring Batch 批处理原则与建议 当我们构建一个批处理的过程时,必须注意以下原则: 通常情况下,批处理的过程对系统和架构的设计要够要求比较高,因此尽可能的使用通用架构来处理批量数据处理,降低 ...
- Spring Batch批处理以及编程模型
1.批处理: 类似于SQL里面的批处理提交 2.场景: 业务定时进行批处理操作,但是批处理的编程模型是怎么的呢? 3.开源框架 Spring Batch 4.编程模型: reader-processo ...
- 配置 Spring Batch 批处理失败重试机制
1. 引言 默认情况下,Spring批处理作业在执行过程中出现任何错误都会失败.然而有些时候,为了提高应用程序的弹性,我们就需要处理这类间歇性的故障. 在这篇短文中,我们就来一起探讨 如何在Sprin ...
- 跑批 - Spring Batch 批处理使用记录
根据spring官网文档提供的spring batch的demo进行小的测验 启动类与原springboot启动类无异 package com.example.batchprocessing; imp ...
- Spring Boot 之 Spring Batch 批处理实践
实践内容 从 MariaDB 一张表内读 10 万条记录,经处理后写到 MongoDB . 具体实现 1.新建 Spring Boot 应用,依赖如下: <!-- Web 应用 --> & ...
- Spring Dataflow批处理框架在OCP上的部署
详细参考 https://donovanmuller.blog/spring-cloud-dataflow-server-openshift/docs/1.2.1.RELEASE/reference/ ...
随机推荐
- 深入理解Java内存模型(五)——锁
锁的释放-获取建立的happens before 关系 锁是java并发编程中最重要的同步机制.锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息. 下面是锁释放-获取的示例代 ...
- UVa 10154 - Weights and Measures
UVa 10154 - Weights and Measures I know, up on top you are seeing great sights, But down at the bot ...
- C# treeview控件部分节点添加checkbox
一.先初始化treeview this.treeView1.CheckBoxes = true; this.treeView1.ShowLines = false; this.treeView1.Dr ...
- java.lang.InstantiationException: DWR can't find a spring config. See the logs for solutions
在spring整合dwr时,报找不到配置文件 DWRcan't find a spring config. See the logs for solutions 解决办法: 在web.xml中添加一下 ...
- radio checked不起作用的原因
<table id="approveTable"> <tr> <td> <input type="radio" nam ...
- hdu 5091(线段树+扫描线)
上海邀请赛的一道题目,看比赛时很多队伍水过去了,当时还想了好久却没有发现这题有什么水题的性质,原来是道成题. 最近学习了下线段树扫描线才发现确实是挺水的一道题. hdu5091 #include &l ...
- HDU 4998 (点的旋转) Rotate
为了寻找等效旋转操作,我们任选两个点P0和Q0,分别绕这n个点旋转一定的角度后最终得到Pn和Qn 然后已知:P0和Pn共圆,Q0和Qn共圆.所以要找的等效旋转点就是这两个线段的垂直平分线交点O. 等效 ...
- C语言之移位操作
C语言很多操作都是以字节为单位进行的,但有时为了节约空间,很多系统程序中要求在比特位级别进行运算处理.C语言一同提供了六种位运算的运算符,分别为&(按位与),|(按位或),~(按位取反),^( ...
- 基于Html5的爱情主题网站–表白神器(第二版)
第二版在第一版的基础上增加了一个动态3D的白云效果背景,鼠标悬浮在页面上云朵会向屏幕Z轴方向运动,在第一人称视角看来向着云朵方向前进的,由此形成一个伪3D效果.有点绕,直接看demo就能理解了.3D白 ...
- 【UVa-679】小球下落——二叉树的编号
在结点1处放一个小球,它会往下落.每个内结点上都会有一个开关,初始全部关闭,当每次有小球落到一个开关上时,状态都会改变.当小球到达一个结点是,如果结点上的开关关闭,则往左走,否则往右走,直到走到叶子的 ...