欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 前端技术 > javascript >内容正文

javascript

springbatch批处理框架入门(一) -凯发k8官方网

发布时间:2025/1/21 javascript 20 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 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核心类做进一步介绍。如果大家喜欢我的文章可以一键三连,如果大家有什么不懂得可以进微信群来探讨。

总结

以上是凯发k8官方网为你收集整理的springbatch批处理框架入门(一)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图