一种分散调度自治的流程引擎负载均衡集群系统及方法技术方案

技术编号:7232621 阅读:211 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种分散调度自治的流程引擎负载均衡集群系统及方法,属于信息技术领域中集群计算技术。本发明专利技术将服务端流程引擎进行多层集群,首先分为多个集群节点组,每个集群节点组再分为多个集群节点,每个集群节点又细分为多个流程引擎,不同集群节点组之间施行自治,取消了总调度器,同一个集群节点组内的集群节点之间通过心跳检测的方法互为备份;将传统的总调度功能从服务端系统转移并分散到了客户端系统中,由客户端系统根据流程引擎列表,用轮转方法计算请求的服务提供者,以降低服务端的调度压力;本发明专利技术通过将调度分散化,有效的解决了传统负载均衡集群的单口瓶颈以及单点失效问题,提高了集群的响应速度和处理能力。

【技术实现步骤摘要】

本专利技术涉及流程引擎负载均衡集群系统及方法,属于信息
中集群计算领域。
技术介绍
高性能集群是大并发信息系统的关键技术,直接影响到大型信息系统的可用性。 特别是工作流管理系统的流程引擎更需要一种响应速度快、扩展性强的集群系统。传统的负载均衡集群系统一般都有一个总调度器,由总调度器负责将外部系统的请求分配给各处理单元。这种集群方法存在下述不足1)客户端调用首先传递给集群系统的总调度器,然后由集群系统的总调度器根据各个集群节点的负载情况把请求转发给相应的集群节点,然后再把计算结果返回给客户端,响应时间比较长,客户体验不好;2)随着系统规模的扩大,总调度器会成为集群系统的性能瓶颈;3)总调度器失效对系统的影响是致命的。
技术实现思路
本专利技术服务器端不设置总调度器,而是采用多层自治结构和分散调度的模式,具体就是服务端包括若干集群节点组,每个集群节点组功能完备并自治,由客户端分散调度, 能够有效解决传统负载均衡器的响应时间长、单口性能瓶颈、单点失效的问题。为了实现分散调度,本专利技术提供一种集群节点及其所含流程引擎发现机制,客户端可以发现集群节点及其所包含的流程引擎列表,这样客户端就可以根据轮转方法分散调度各个集群中的流程引擎(以下简称引擎)。分散调度的意义在于,客户端的每个请求进程都是一个均衡器,也就是说有多少个客户进程,就有多少个负载均衡器,而不必依赖一个全局的均衡器(总调度器),如此,彻底解决了单口瓶颈和单点失效问题。本专利技术公开了一种分散调度自治的流程引擎负载均衡集群系统,所述系统包括流程引擎集群,包括多个集群节点组,其中每个所述集群节点组包括多个集群节点,每个所述集群节点又包括多个流程引擎;请求池,用以存放客户端发起的流程服务请求;流程引擎信息布告板,用以通报当前可用的流程引擎的列表信息;客户端系统,包括有多个引擎序号轮转器,采用轮转引擎序号的方法计算分散调度各个流程引擎;处于工作状态的流程引擎按固定轮询周期从请求池取出属于本引擎的请求,然后进行流程处理。每个所述集群节点组设置有心跳起搏器,用于记录该集群节点组的心跳信息,每个所述心跳起搏器对应一个心跳控制锁,并由取得所述心跳控制锁的集群节点维护整个集群节点组的心跳信息。每个所述集群节点组在某个时刻只有一个集群节点处于工作状态,其它的集群节点处于伺服状态,处于工作状态的集群节点负责维护整个集群节点组的心跳信息。每个所述集群节点设置有一个节点控制器,用于启动时探测集群节点所属集群节点组的心跳信息,如果发现心跳停止,则抢占所述心跳控制锁,如果抢占成功,则启动心跳, 并切换到工作状态;否则,如果未发现心跳停止且心跳节点是其它节点,或者抢占心跳控制锁失败,则就切换到伺服状态;处于伺服状态的集群节点会按固定周期来探测集群节点组的心跳信息,如果发现心跳停止,则按上一步骤所述切换到工作状态;处于工作状态的集群节点会按固定周期来探测心跳节点是否被其它集群节点抢占,如果被抢占,则就切换到伺服状态。处于工作状态的集群节点的每个流程引擎设置一个引擎心跳器,用于记录该引擎的心跳时间,所述节点控制器定时检查其内的各个引擎心跳器,如果发现某一个或多个心跳停止,则停止集群节点内的所有引擎,并停止对集群节点组心跳起搏器的占用,切换到伺服状态。同一个集群节点组内的集群节点会按固定周期来探测节点组的心跳信息,一旦发现心跳停止,则按上述步骤代替出问题的节点进行工作。客户端查阅流程引擎信息布告板,计算可用引擎的总个数;客户端初始化所含引擎序号轮转器,引擎序号轮转器上的值对应相应的流程引擎,将可用引擎总个数设为引擎序号轮转器的最大阈值,当超过此值时,引擎序号轮转器重新归零;发起新流程前,采用轮转引擎序号轮转器的方法将引擎序号轮转器的当前值加1, 计算请求应该分配给哪个流程引擎,以将客户端系统的请求平均分配给各个流程引擎。客户端采用异步消息的方式将流程服务请求发送给请求池,或者客户端采用同步通信的方式直接调用指定引擎的流程服务。本专利技术还公开了一种分散调度自治的流程引擎负载均衡集群方法,其特征在于 该方法将流程引擎集群分为多个集群节点组,每个所述集群节点组还分为多个集群节点, 每个所述集群节点又进一步细分为多个流程引擎,其中所述集群节点是集群服务器,所述方法具体包括如下步骤步骤01 启动各个集群服务器节点;步骤02 客户端系统启动时发现集群节点及其所含引擎服务器列表;步骤03 客户端初始化引擎序号轮转器;步骤04 客户端在请求前轮转引擎序号轮转器;步骤05 判断是否为同步模式,如果是同步模式,则请求直接发往相应集群引擎服务器;如果不是同步模式,则请求被发往请求池;步骤06 如果是异步模式,集群服务器从请求池取出与自身序号对应的服务请求;步骤07 流程引擎处理请求。处于工作状态的流程引擎按固定轮询周期从请求池中取出属于本引擎的请求;每个集群节点都是一个能对外提供服务的完备系统;系统具有一套集群节点及其所含流程引擎的发现机制;客户端启动时首先发现集群服务器,客户端运行过程中,通过引擎序号轮转器轮转方法,平均分配请求;客户端的每个客户进程维护一个引擎序号轮转器,根据其序号决定将请求分配给哪个引擎;客户端把请求最终分发给引擎,而不是集群节点组,这样也解决了不同能力的计算机组成集群时的负载均衡问题;客户端调用流程引擎分两种模式1)同步模式,幻异步模式。本专利技术具有以下技术特点1)集群系统内的负载均衡器被转移到了客户端系统(引擎序号轮转器);2)服务端无需负载均衡器;3)服务端集群节点组内支持基于心跳机制的可靠性备份;4)负载均衡计算的权重分配(异构计算机集群,对于处理能力强的计算机应该分配更多请求)转化为集群节点组引擎数配置,也就是说,对于处理能力强的集群节点配置更多的引擎数目。这样,权重处理实际转移到了系统建设期,并且回避了运行期间的权重处理,从而减轻了服务器计算压力;5)支持异步请求。本专利技术采用上述技术方案,至少具有以下技术效果1)无单口性能瓶颈;2)无单一失效点;3)无限的扩充能力,可以根据需要增加任意个集群节点组;4)请求响应快,客户体验好;5)节省负载均衡硬件的投资成本。附图说明下面根据附图和实施例对本专利技术作进一步详细说明。图1为本专利技术的分散调度自治负载均衡集群系统结构示意图;图2为集群请求与调度流程示意图;图3为压力测试TPS效果图。具体实施例方式本专利技术的分散调度自治负载均衡集群系统结构如图1所示,系统分为N个集群节点组,每个集群节点组布置M个集群节点,每个节点对应一台服务器计算机,每个集群节点上启动K个引擎,每个引擎对应一个独立的线程,不同节点组内的节点上的引擎个数可以不同,但是同一个节点组内的不同节点上的引擎数目必须相同,节点组之间的引擎序号必须连续。图1中的虚线箭头表示同步调用。系统在客户端处设置有轮转器。N个集群节点组代表N个引擎线程序号区段,每个集群节点组负责计算所属区段的集群任务请求。比如第一组负责的引擎序号区段为1-3,第2组为4-6。每个线程具有一个引擎序号。集群节点组内的各节点计算机的处理能力应该是相当的,但是不同组的计算机的处理能力则可以不同。每个引擎对应一个线程。每个计算机节点上部署的引擎数目根据该计算机的处理能力决定。集群节点组内的M台计算机节点互为备份。集群节点本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种分散调度自治的流程引擎负载均衡集群系统,其特征在于所述系统包括流程引擎集群,包括多个集群节点组,其中每个所述集群节点组包括多个集群节点,每个所述集群节点又包括多个流程引擎;请求池,用以存放客户端发起的流程服务请求;流程引擎信息布告板,用以通报当前可用的流程引擎的列表信息;客户端系统,包括有多个引擎序号轮转器,采用轮转引擎序号的方法计算分散调度各个流程引擎;处于工作状态的流程引擎按固定轮询周期从请求池取出属于本引擎的请求, 然后进行流程处理。2.如权利要求1所述的系统,其特征在于每个所述集群节点组设置有心跳起搏器,用于记录该集群节点组的心跳信息,每个所述心跳起搏器对应一个心跳控制锁,并由取得所述心跳控制锁的集群节点维护整个集群节点组的心跳信息;每个所述集群节点组在某个时刻只有一个集群节点处于工作状态,其它的集群节点处于伺服状态,处于工作状态的集群节点负责维护整个集群节点组的心跳信息。3.如权利要求1或2所述的系统,其特征在于每个所述集群节点设置有一个节点控制器,用于启动时探测集群节点所属集群节点组的心跳信息,如果发现心跳停止,则抢占所述心跳控制锁,如果抢占成功,则启动心跳,并切换到工作状态;否则,如果未发现心跳停止且心跳节点是其它节点,或者抢占心跳控制锁失败,则就切换到伺服状态;处于伺服状态的集群节点会按固定周期来探测集群节点组的心跳信息,如果发现心跳停止,则按上一步骤所述切换到工作状态;处于工作状态的集群节点会按固定周期来探测心跳节点是否被其它集群节点抢占,如果被抢占,则就切换到伺服状态。4.如权利要求1至3之一所述的系统,其特征在于处于工作状态的集群节点的每个流程引擎设置一个引擎心跳器,用于记录该引擎的心跳时间,所述节点控制器定时检查其内的各个引擎心跳器,如果发现某一个或多个心跳停止,则停止集群节点内的所有引擎,并停止对集群节点组心跳起搏器的占用,切换到伺服状态。5.如权利要求1至4之一所述的系统,其特征在于同一个集群节点组内的集群节点会按固定周期来探测节点组的心跳信息,一旦发现心跳停止,则按上述步骤代替出问题的节点进行工作。6.如权利要求1或2所述的系统,其特征在于客户端查阅流程引擎信息布告板,计算可用引擎的总个数;客户端初始化所含引擎序号轮转器,引擎序号轮转器上的值对应相应的流程引擎,将可用引擎总个数设为引擎序号轮转器的最大阈值,当超过此值时,引擎序号轮转器重新归零;发起新流程前,采用轮转引擎序号轮转器的方法将引...

【专利技术属性】
技术研发人员:孙刚高昊江
申请(专利权)人:北京京北方信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术