Spring Batch及批处理(第一篇)

文本声明: 本文的创作来源有两点, 其一是哔哩哔哩网站上的视频; 其二, 根据刘相编辑的书《Spring Batch批处理框架》。基于上面两个资料加上自己的一些想法进行编写的, 若有侵权, 请联系。


SpringBatch 是一个大数据量的并行处理框架。通常用于数据的离线迁移,和数据处理,⽀持事务、并发、流程、监控、纵向和横向扩展,提供统⼀的接⼝管理和任务管理;SpringBatch是SpringSource和埃森哲为了统一业界并行处理标准为广大开发者提供方便开发的一套框架。

1 什么是批处理

什么是批处理,我们可以从一下几方面来进行理解:

  • 有限数据(Finite data):批处理是对有限数据的处理,相对应的就是无限数据(non-infinite),即数据可以处理到完成。
  • 无交互(No interaction):什么叫做无交互?例如在软件开发中,一个 web request 或 发送一个 message,都是系统之间或是Client与系统之间的交互。而 Batch processing 批处理程序运行在服务器上,不需要交互。
  • 无中断(No interruption):一个批处理从开始到结束,它没有外界中断。也不排除批处理的过程中,发生错误或异常,但 Spring Batch 提供了相应的批处理容错机制。

2 批处理典型的应用场景

  • ETL:Extract-Transform-Load,数据的抽取,转换和加载;
  • Report:报表;
  • Data Science:数据科学中提到的预测模型 predicative model;
  • BigData:大数据中的 Hadoop/Spark 处理框架
  • 非交互性的应用都可以考虑使用批处理去实现,而 Spring Batch 就是其中一种比较成熟的解决方案。

3 什么是Spring Batch

Spring Batch 是 Java 中领先的批处理框架,它是来自埃森哲的一个开源项目,与 Spring 合作,同时 Spring Batch 也是 JSR-352 (Java Specification Requests,Java 规范请求)的一个标准来源。

4 Spring Batch 的特性

  • 工作流状态机(Job flow state machine):其中的 Job 是由相互独立的 step 来构成的,step 可以在不同的状态之间进行转换。
  • 事务处理(Transaction processing)
  • 声明式 IO(Declarative IO):提供了非常易用的输入输出支持,从而使程序员只关注与业务逻辑
  • 容错处理(Error handling):批处理一般都是离线运行(Offline processing),在夜间启动。这个批处理框架提供了一些容错机制,例如:skip,并记录一些错误的日志。
  • 可扩展机制(Scalability ability):分布式处理以及例如第三方框架Hadoop框架的集成。
    Spring Batch 建立在 Spring 框架之上的,所以可以使用 Spring 框架的一些特性,例如:IoC、Testing、Spring Boot…
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值