长治网站设计制作网站,网站哪个公司做的比较好,建设网站搞网络营销的总结,h5页面用什么软件前言
如今微服务架构应用增多#xff0c;但在企业里还存在海量数据的批处理场景。诸如银行的金融机构中#xff0c;每天有3-4万笔的批处理作业需要处理。而常见处理方案有#xff1a;
1、数据脚本跑批
2、批处理框架
3、多线程事务处理方案。
在满足基本功能之外…前言
如今微服务架构应用增多但在企业里还存在海量数据的批处理场景。诸如银行的金融机构中每天有3-4万笔的批处理作业需要处理。而常见处理方案有
1、数据脚本跑批
2、批处理框架
3、多线程事务处理方案。
在满足基本功能之外还需要关注如下的几点
**健壮性**不会因为无效数据或错误数据导致程序崩溃**可靠性**通过跟踪、监控、日志及相关的处理策略重试、跳过、重启实现批作业的可靠执行**扩展性**通过并发或者并行技术实现应用的纵向和横向扩展满足海量数据处理的性能需求
介绍
Spring Batch是一个轻量级的批量处理框架它基于Spring框架提供了一套完整的批量处理解决方案。Spring Batch可以帮助我们处理大量的数据支持事务管理、并发处理、错误处理等功能。
Spring Batch本身是批处理逻辑的抽象是对执行任务的规范化跟调度框架是两回事。它可以结合调度框架由调度框架进行调度Spring Batch作业完成对批处理的任务。调度框架有相应的开源软件可供选择如quartzcronxxl-job等。
优势
丰富的开箱即用组件。 开箱即用组件包括各种资源的读、写。读/写支持文本文件读/写、XML文件读/写、数据库读/写、JMS队列读/写等。还提供作业仓库作业调度器等基础设施大大简化开发复杂度。面向chunk处理 支持多次读、一次写、避免多次对资源的写入大幅提升批处理效率。事务管理能力。 默认采用Spring提供的声明式事务管理模型面向Chunk的操作支持事务管理同时支持为每个tasklet操作设置细粒度的事务配置隔离级别、传播行为、超时设置等。元数据管理。 自动记录Job和Step的执行情况、包括成功、失败、失败的异常信息、执行次数、重试次数、跳过次数、执行时间等方便后期的维护和查看。易监控的批处理应用。 提供了灵活的监控模式包括直接查看数据库、通过Spring Batch提供的API查看、JMX控制台查看等。其中还说到Spring Batch Admin不过这个项目已不维护改为用Spring Cloud Data Flow了。丰富的流程定义。 支持顺序任务、条件分支任务、基于这两种任务可以组织复杂的任务流程。健壮的批处理应用。 支持作业的跳过、重试、重启能力、避免因错误导致批处理作业的异常中断。易扩展的批处理应用。 扩展机制包括多线程执行一个Step(Multithreaded step)、多线程并行执行多个Step(Parallelizing step)、远程执行作业Remote chunking、分区执行partitioning step。复用企业现有IT资产。 提供多种Adapter能力使得企业现有的服务可以方便集成到批处理应用中。避免重新开发、达到复用企业遗留的服务资产。
典型场景
定期提交批处理任务并行批处理企业消息驱动处理大规模并行批处理失败后手动或定时重启按顺序处理依赖的任务可扩展为工作流驱动的批处理部分处理跳过记录例如回滚时批处理事务
核心概念
Spring Batch把批处理简单化标准化是如何体现出来。简单来说Spring Batch把批处理简化为Job和Job step两部分在Job step中把数据处理分为读数据(Reader)、处理数据(Processor)、写数据Writer三个步骤。异常处理机制分为跳过、重试、重启三种作业方式分为多线程、并行、远程、分区四种。开发者在开发过程中大部分工作是根据业务要求编写Reader、Processor和Writer即可提高了批处理开发的效率。同时Spring Batch本身也提供了很多默认的Reader和Writer开箱即用。
1、Job
Job是Spring Batch中的最高级别的概念它代表了一个完整的批量处理任务。一个Job由多个Step组成每个Step代表了一个具体的处理步骤。
2、Step
Step是Spring Batch中的一个处理步骤它包含了一个ItemReader读取数据、一个ItemProcessor处理数据和一个ItemWriter写入数据。
1ItemReader
ItemReader用于读取数据它可以从文件、数据库、消息队列等数据源中读取数据并将读取到的数据传递给ItemProcessor进行处理。
2ItemProcessor
ItemProcessor用于处理数据它可以对读取到的数据进行处理并将处理后的数据传递给ItemWriter进行写入。
3ItemWriter
ItemWriter用于写入数据它可以将处理后的数据写入到文件、数据库、消息队列等数据源中。
不足与增强
Spring Batch批处理框架虽然提供了4种不同的监控方式但从目前的使用情况来看都不是非常的友好。
通过DB直接查看对于管理人员来讲真的不忍直视通过API实现自定义的查询这是程序员的天堂确实运维人员的地狱提供了Web控制台进行Job的监控和操作目前提供的功能太裸露无法直接用于生产提供JMX查询方式对于非开发人员太不友好
但在企业级应用中面对批量数据处理仅仅提供批处理框架仅能满足批处理作业的快速开发、执行能力。企业需要统一的批处理平台来处理复杂的企业批处理应用批处理平台需要解决作业的统一调度、批处理作业的集中管理和管控、批处理作业的统一监控等能力。
总结
整理来说是一个很不错的批处理框架但是使用成本高运维成本高。