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

java分布式批处理

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

java分布式批处理

本发明涉及数据处理技术领域,特别涉及一种基于分布式架构的跑批处理装置及方法。

背景技术:

跑批为银行一种重要业务,最主要业务是产生总账,进行总分核对;再次就是进行大批量交易,如结息、计提代收付、报表生成,流水数据导出等。银行体系涉及庞大复杂的跑批业务操作,目前,批处理主要采用单机部署处理的方式。随着业务的发展,数据规模的增大,单机部署的跑批方案存在诸多方面的问题:

1.性能问题:大量高并发,导致计算机性能消耗过大,影响任务执行效率。

2.健壮性问题,即可靠性问题:单机系统下,因每个任务固定且仅部署在一个任务节点下,导致任务与节点存在耦合性,若节点发生故障,会影响该节点下所有任务的执行,其上部署的所有跑批任务将全部失败。

3.维护性差:系统扩容时,需要对所有的任务拆分后重新部署,以保证各任务节点的性能损耗均衡;且在后期运维中,还需根据节点性能损耗情况,对其上的任务部署数量进行调整。以上两方面,导致维护工作量较大。

以上问题,对跑批的正确性和可靠性带来较大冲击,进而对银行日常业务造成影响,甚至引发客户投诉。单机部署结构如图1所示。

针对上述问题,目前尚未提出有效的解决方案。

技术实现要素:

本发明实施例提供了一种基于分布式架构的跑批处理装置,用以提高了跑批处理的可靠性及银行系统性能和易维护性,该装置包括:任务触发模块、调度模块、包括多个任务执行节点的任务集群;其中:

任务触发模块,用于根据预先配置的跑批任务执行策略,发起跑批任务执行请求至所述调度模块;

调度模块,用于根据所述跑批任务执行请求,从多个任务执行节点中确定出执行所述跑批任务执行请求的任务执行节点,将所述跑批任务执行指令发送至确定出的任务执行节点;

多个任务执行节点,用于根据调度模块发来的跑批任务执行指令,执行跑批任务。

本发明实施例还提供了一种基于分布式架构的跑批处理方法,用以提高了跑批处理的可靠性及银行系统性能和易维护性,该方法包括:

任务触发模块根据预先配置的跑批任务执行策略,发起跑批任务执行请求至调度模块;

调度模块根据所述跑批任务执行请求,从多个任务执行节点中确定出执行所述跑批任务执行请求的任务执行节点,将所述跑批任务执行指令发送至确定出的任务执行节点;

多个任务执行节点根据调度模块发来的跑批任务执行指令,执行跑批任务。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于分布式架构的跑批处理方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于分布式架构的跑批处理方法的计算机程序。

本发明实施例提供的技术方案通过:任务触发模块根据预先配置的跑批任务执行策略,发起跑批任务执行请求至调度模块;调度模块根据所述跑批任务执行请求,从多个任务执行节点中确定出执行所述跑批任务执行请求的任务执行节点,将所述跑批任务执行指令发送至确定出的任务执行节点;多个任务执行节点根据调度模块发来的跑批任务执行指令,执行跑批任务,达到了如下有益技术效果:

1.性能提高:基于分布式架构进行跑批处理,提高了性能。

2.可靠性提高:分布式系统下,任务执行由任务集群完成,而不是依赖某一个任务节点,避免了因某一节点故障而导致任务执行失败的情况发生,即调度模块将跑批任务执行指令分配给集群中的任一任务执行节点,降低了任务与服务器的耦合,增强了系统可靠性。

3.维护简单:系统扩容仅需将任务子节点加入集群,其余工作全部交由调度模块完成。

综上,上述技术方案提高了跑批处理的可靠性及系统性能和易维护性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有跑批处理方案涉及的单机部署拓扑结构示意图;

图2是本发明实施例中基于分布式架构的跑批处理装置的结构示意图;

图3是本发明实施例中基于分布式架构的跑批处理方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

发明人发现技术问题:现有单机部署,即业务系统部署在一台或者固定几台机器上。缺点包括:可靠性低,任务固定部署在一台服务器上,若服务器发生异常,将影响其上部署的任务运行。同时,单机性能有限,随着业务增长,数据量增大,系统可能面临性能瓶颈。单机部署方式,在跑批系统性能遇到瓶颈时,只能采用增加服务器、拆分任务的方案。但这种方案缺少对资源的有效管理,成本相对偏高;且系统在可靠性、健壮性方面有待提高,同时也不容易维护。

因此,由于发明人考虑到了以上技术问题,以及随着网络金融的发展,银行体系下业务规模、业务类型及业务数据量急剧膨胀,单机部署的跑批架构在性能和可靠性上逐渐无法满足业务需求,需要从软件架构层面变革,引入一个高可用、可扩展、易维护的批量任务治理框架。

本发明结合现有分布式技术和银行业务要求,设计一种基于分布式部署的跑批技术方案,即基于分布式架构的跑批处理方案,见图2,该方案采用分布式集群部署:由调度模块和任务集群等构成,集群中每台服务器都为一个独立的任务节点且能力相同。节点根据调度指令完成任务执行。该方案可以以dubbo框架为基础,引入分布式技术,并通过调度模块的定制开发,由调度模块统筹任务执行,将任务均匀下发至分布式集群内的任务节点。其中,dubbo为一款开源高性能分布式服务框架,通过高性能rpc实现服务的输出和输入功能。该方案中调度模块将跑批任务执行指令分配给集群中的任务节点,降低了任务与服务器的耦合,增强了系统可靠性。同时还可以通过调度模块实现任务集群的负载均衡,提升了集群的整体资源利用率,同时,成本低,维护简单。下面对该基于分布式架构的跑批处理方案进行详细介绍如下。

图2是本发明实施例中基于分布式架构的跑批处理装置的结构示意图,如图2所示,该装置包括:任务触发模块01、调度模块02、包括多个任务执行节点的任务集群03;其中:

任务触发模块,用于根据预先配置的跑批任务执行策略,发起跑批任务执行请求至所述调度模块;

调度模块,用于根据所述跑批任务执行请求,从多个任务执行节点中确定出执行所述跑批任务执行请求的任务执行节点,将所述跑批任务执行指令发送至确定出的任务执行节点;

多个任务执行节点,用于根据调度模块发来的跑批任务执行指令,执行跑批任务。

本发明实施例提供的基于分布式架构的跑批处理装置提高了跑批处理的可靠性及系统性能和易维护性。

下面结合图2对本发明实施例涉及的各个步骤进行详细介绍。

一、首先,介绍对批量系统进行改造的步骤。

引入dubbo治理框架,搭建任务节点集群。将批量任务改造为rpc服务并对外发布。在进行改造时,发明人克服的技术难题:

1、将存量单机模式的批量任务,改造为dubbo框架下的rpc服务。此项工作的工作量与存量批量任务规模成正比,但从单机系统改造为分布式系统乃是系统“跨时代”的变革。

2、在保留原有主框架的前提下,如何将dubbo框架作为“附属组件”,融入其中现有框架,是改造过程中的一大难点。dubbo组件一般作为分布式软件项目的核心主框架。而在此专利中,为减少系统改造成本,发明人创造性地保留了原批量系统的主架构,将原架构“一刀两断”,再将dubbo作为“附属”子框架插入原框架之中。

rpc中文名称为:远程过程调用(remoteprocedurecall)。其基于远程过程调用协议(remoteprocedurecallprotocol)。一个完整的rpc框架,包括服务发现、负载、容错、网络传输等机制模块。本专利基于的dubbo框架,便是业界rpc使用的典范之一。

二、其次,介绍基于分布式架构的跑批处理方案。

1、首先,介绍预先配置跑批任务执行策略及触发跑批任务的方案。

在一个实施例中,所述跑批任务执行策略包括:任务批量执行的时间、周期、批量执行范围和批量触发方式。

具体实施时,可以在任务配置管理中心,完成批量任务的执行策略(跑批任务执行策略)的配置,配置内容可以包括批量执行时间和周期、批量执行范围、批量触发方式等。所有任务一般为周期运行任务,到达预设时间点,任务配置管理中心便会触发任务。任务触发后,任务调度模块完成任务调度。

具体实施时,执行策略,属于业务范畴。即根据业务需求完成对应的执行计划的设定。如:批量执行周期计划:是以年度为周期还是月度;批量补跑计划:执行失败后是否自动补跑以及何时补跑;批量执行数据范围设定:数据分析范围控制。

2、接着,介绍任务执行节点状态监控,进一步提高跑批处理准确率,负载均衡提高资源利用率,同时降低成本的方案。

发明人发现了现有单机部署存在的技术问题:

(1)资源存在浪费,利用率低。单机部署方案下,各任务节点下配置的任务不同,对硬件性能损耗也不同,可能出现空载或过载,即单机系统下,每个任务固定且仅部署在一个任务节点上。随着业务的演变发展,任务对任务节点的性能损耗会有增强或减弱,最终导致有的任务节点性能过载,有的性能资源闲置。

(2)成本高。因上述(1)提到的单机部署架构资源利用率低,导致在相同处理能力下,单机部署架构成本相对偏高。

在一个实施例中,上述基于分布式架构的跑批处理装置还可以包括:第一监控模块,用于监测多个任务执行节点的状态;

所述调度模块具体用于:根据所述跑批任务执行请求,以及多个任务执行节点的状态,从多个任务执行节点中确定出执行所述跑批任务执行请求的任务执行节点,将所述跑批任务执行指令发送至确定出的任务执行节点。

在一个实施例中,所述任务执行节点的状态包括:任务执行节点的健康状态和任务执行节点的压力负荷状态。

具体实施时,通过第一监控模块监测多个任务执行节点的状态,将状态反馈给调度模块,因此,调度模块在进行调度时,可以考虑多个任务执行节点的状态,动态选择最合适的节点执行任务,从而实现任务集群的负载均衡,提升了集群的整体资源利用率,以及进一步提高跑批准确率。由于避免了某一任务节点性能发生过载或空闲,充分利用服务器资源,整体成本下降。下面对负载均衡的方案及进一步提高跑批准确率的方案进行举例介绍。

(1)任务执行节点的健康状态可以包括:正常状态、故障异常状态或性能降低状态等。例如,如果第一监控模块监测某一任务执行节点的状态出现故障时,那么第一监控模块会将这个故障异常状态反馈给调度模块,调度模块就不会将任务分配给该任务执行节点,因此,调度模块可感知任务节点故障,避免因故障节点导致的任务执行失败,提高跑批处理的准确率。又再如:如果第一监控模块监测某一任务执行节点的状态不好,性能降低时,那么第一监控模块会将这个性能降低状态反馈给调度模块,调度模块就给该任务执行节点少分配任务,实现合理调度。

(2)任务执行节点的压力负荷状态可以包括任务执行节点的过载或空闲,即忙闲程度。例如,如果第一监控模块监测某一任务执行节点的状态为忙碌状态时,那么第一监控模块会将这个忙碌状态反馈给调度模块,调度模块就会分配给该任务执行节点少量的任务,相反亦如此。因此,实现任务集群的负载均衡,提升了集群的整体资源利用率,进而降低成本。

3、接着,介绍另一优化方案。

在一个实施例中,上述基于分布式架构的跑批处理装置还可以包括:第二监控模块,用于监测多个任务执行节点的执行结果,将所述执行结果反馈给运维人员。

具体实施时,任务执行节点接收命令(跑批任务执行指令),完成任务执行,并记录工作日志返回任务执行状态后。进入等待状态,等待调度的下一个执行命令的传达。第二监控模块周期性扫描各任务的执行结果,并对结果进行分析展示,对于执行结果进行准实时推送展示。以便运维人员掌控整体批量运行状况,并及时对异常做出响应。

具体实施时,任务触发模块可以是任务定时服务器。调度模块可以是调度服务器。任务集群中的任务集群节点可也是如图2所示的节点1、节点2……节点n。

基于同一发明构思,本发明实施例中还提供了一种基于分布式架构的跑批处理装置,如下面的实施例所述。由于基于分布式架构的跑批处理装置解决问题的原理与基于分布式架构的跑批处理方法相似,因此基于分布式架构的跑批处理装置的实施可以参见基于分布式架构的跑批处理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是本发明实施例中基于分布式架构的跑批处理方法的流程示意图,如图3所示,该方法包括:

步骤101:任务触发模块根据预先配置的跑批任务执行策略,发起跑批任务执行请求至调度模块;

步骤102:调度模块根据所述跑批任务执行请求,从多个任务执行节点中确定出执行所述跑批任务执行请求的任务执行节点,将所述跑批任务执行指令发送至确定出的任务执行节点;

步骤103:多个任务执行节点根据调度模块发来的跑批任务执行指令,执行跑批任务

在一个实施例中,上述基于分布式架构的跑批处理方法还可以包括:第一监控模块监测多个任务执行节点的状态;

调度模块根据所述跑批任务执行请求,从多个任务执行节点中确定出执行所述跑批任务执行请求的任务执行节点,将所述跑批任务执行指令发送至确定出的任务执行节点,包括:

调度模块根据所述跑批任务执行请求,以及多个任务执行节点的状态,从多个任务执行节点中确定出执行所述跑批任务执行请求的任务执行节点,将所述跑批任务执行指令发送至确定出的任务执行节点。

在一个实施例中,所述任务执行节点的状态包括:任务执行节点的健康状态和任务执行节点的压力负荷状态。

在一个实施例中,上述基于分布式架构的跑批处理方法,还可以包括:第二监控模块监测多个任务执行节点的执行结果,将所述执行结果反馈给运维人员。

在一个实施例中,所述跑批任务执行策略包括:任务批量执行的时间、周期、批量执行范围和批量触发方式。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于分布式架构的跑批处理方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于分布式架构的跑批处理方法的计算机程序。

本发明实施例提供技术方案的有益技术效果是:提高了跑批处理的可靠性及系统性能和易维护性。提高了资源利用率,降低了成本。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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

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

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