栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBatch批处理框架入门(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBatch批处理框架入门(一)

目录

SpringBatch简介

批处理场景

批处理需求

 SpringBatch使用场景

SpringBatch架构介绍

SpringBatch分层架构如下

SpringBatch 总体架构

SpringBatch基于Mysql初始化表


SpringBatch简介

        Spring Batch是一个轻量级,全面的批处理框架,旨在开发对企业系统日常运营至关重要的强大批处理应用程序。Spring Batch建立在人们期望的Spring框架特性(生产力,基于POJO的开发方法和普遍的易用性)的基础上,同时使开发人员可以在必要时轻松访问和利用更高级的企业服务。 划重点:Spring Batch不是一个调度框架,而是批处理框架。

批处理场景

        在大型企业中,由于业务复杂、数据量大、数据格式不同、数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理。而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理。这样的过程就是“批处理”。

批处理应用通常有以下特点:

  • 数据量大,从数万到数百万甚至上亿不等;
  • 整个过程全部自动化,并预留一定接口进行自定义配置;
  • 这样的应用通常是周期性运行,比如按日、周、月运行;
  • 对数据处理的准确性要求高,并且需要容错机制、回滚机制、完善的日志监控等

批处理需求

批处理作业两个典型特征是批量执行与自动执行(需要无人值守):前者能够处理大批量数据的导入、导出和业务逻辑计算;后者无需人工干预,能够自动化执行批量任务。

在关注其基本功能之外,还需要关注如下的几点:

  • 健壮性:不会因为无效数据或错误数据导致程序崩溃;
    • 可靠性:通过跟踪、监控、日志及相关的处理策略(重试、跳过、重启)实现批作业的可靠执行;
    • 扩展性:通过并发或者并行技术实现应用的纵向和横向扩展,满足海量数据处理的性能需求; 目前批处理框架SpringBatch正好可以满足以上需求。

 SpringBatch使用场景
  • 从数据库,文件或队列中读取大量记录。
  • 以某种方式处理数据。
  • 以修改后的形式写回数据

其数据流转示意图如下:

 Spring Batch提供了可重用的功能,这些功能对于处理大量记录至关重要,包括日志记录/跟踪,事务管理,作业处理统计信息,作业重启,跳过和资源管理。


SpringBatch架构介绍

SpringBatch分层架构如下

        

这种分层的体系结构突出了三个主要的高级组件:应用程序,核心和基础结构。

  • 该应用程序包含开发人员使用Spring Batch编写的所有批处理作业和自定义代码。
  • 批处理核心包含启动和控制批处理作业所需的核心运行时类。它包括实现 JobLauncher,Job和Step。
  •  基础结构包含公用的读取器和写入器以及服务(例如RetryTemplate),应用程序开发人员(例如ItemReader和的读取器和写入器ItemWriter)和核心框架本身(重试,这是它自己的库)都使用它们。

SpringBatch 总体架构

spring batch总体架构如下:

 在spring batch中一个job可以定义多个的步骤step,在每一个step里面可以定义其专属的ItemReader用于读取数据,ItemProcesseor用于处理数据,ItemWriter用于写数据,而每一个定义的job则都在JobRepository里面,我们可以通过JobLauncher来启动某一个job。

SpringBatch基于Mysql初始化表

当我们在使用SpringBatch时候,需要在数据库中初始化9张表,以保证我们SpringBatch可以正常使用。初始化表sql语句是在我们的spring-batch-core包

下面的schema-mysql.sql文件。具体表名如下:

  • batch_job_execution
  • batch_job_execution_context
  • batch_job_execution_params
  • batch_job_execution_seq
  • batch_job_instance
  • batch_job_seq
  • batch_step_execution
  • batch_step_execution_context
  • batch_step_execution_seq

以上对SpringBatch是做什么以及应用场景做了简单介绍,下一章我们将对SpringBatch核心类做进一步介绍。如果大家喜欢我的文章可以一键三连,如果大家有什么不懂得可以进微信群来探讨。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号