一种负载均衡分配的方法及系统与流程

文档序号:17748739发布日期:2019-05-24 20:48阅读:386来源:国知局
一种负载均衡分配的方法及系统与流程

本发明涉及一种负载均衡分配的方法及系统。



背景技术:

目前,随着电信业务的发展,为运营商带来大量用户的同时,也对整体系统带来了大量任务压力.各大运营商均为了追求更好的用户体验与服务水平,对于电信系统的要求也就越来越高,对现有BOSS系统的服务响应能力提出挑战。

在系统运行的过程中,海量的任务生成后,如何高效合理的分配负载所有的任务,不仅决定着系统是否能够正常的运行,更加关键的是有限资源的合理分配利用.所以,对任务进行负载均衡就显得尤为重要。



技术实现要素:

本发明所要解决的技术问题是,为了解决电信业务中不断增加的海量任务的处理,为了合理分配使用主机资源,避免服务主机出现使用不均衡的情况,提供一种将不同任务负载均衡处理,流转分配给后续处理进程,使每台主机分摊到的任务量都是一样的.从而达到系统资源有效利用以及整体系统的健康运行的负载均衡分配的方法及系统。

本发明解决上述技术问题的技术方案如下:一种负载均衡分配的方法,具体包括以下步骤:

步骤1:发起负载分配任务,对任务进行配置和预处理;

步骤2:获取任务的相关信息和节点信息;

步骤3:根据相关信息和节点信息从内存库中读取待分配的记录;

步骤4:将待分配的记录分发到相应进程下;

步骤5:判断是否存在任务配置更新或节点信息异常,如果是,执行步骤2;否则,执行步骤6;

步骤6:判断待分配记录是否全部分配完成,如果是,结束;否则,执行步骤4。

本发明的有益效果是:通过动态获取内存库记录,高效智能解决计算服务端压力,均衡分派海量任务,在提高系统整体运行速度同时避免了服务端主机运行压力不均衡的问题;本发明可在电信BOSS系统中各种任务流转过程中使用。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述相关信息包括进程个数、进程ID、分发表名及字段名等信息。

进一步,所述预处理包括启动客户端,从客户端获取对应本次任务的节点信息,以实现对负载分配进程的动态调度管理。

进一步,所述步骤4中按照设定的算法将记录的分发字段更新为出口进程ID,进而按照出口进程ID将记录分发到相应的进程下。

进一步,所述获取节点信息采用抢占式先注册客户端获取对应本次任务的节点信息的方式。

进一步,所述设定的算法包括记录数与进程数取模算法、分发表积压数量加权算法和单独路由表算法等。

本发明解决上述技术问题的技术方案如下:一种负载均衡分配的系统,包括预处理模块、信息获取模块、记录读取模块、分配模块和监控模块;

所述预处理模块用于发起负载分配任务,对任务进行配置和预处理;

所述信息获取模块用于获取任务的相关信息和节点信息;

所述记录读取模块用于根据相关信息和节点信息从内存库中读取待分配的记录;

所述分配模块用于将待分配的记录分发到相应进程下,直到所述分配记录全部分配完成;

所述监控模块用于监控分配模块分配记录过程中,当存在任务配置更新或节点信息异常,触发信息获取模块重新获取相关信息和节点信息。

本发明的有益效果是:通过动态获取服务端列表,高效智能解决计算服务端压力,均衡分派海量任务,在提高系统整体运行速度同时避免了服务端主机运行压力不均衡的问题;本发明可在电信BOSS系统中各种任务流转过程中使用。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述相关信息包括进程个数、进程ID、分发表名及字段名等信息。

进一步,所述预处理包括启动客户端,从客户端获取对应本次任务的节点信息,以实现对负载分配进程的动态调度管理。

进一步,所述分配模块中按照设定的算法将记录的分发字段更新为出口进程ID,进而按照出口进程ID将记录分发到相应的进程下。

附图说明

图1为本发明实施例1所述的一种负载均衡分配的方法流程图;

图2为本发明实施例1所述的一种负载均衡分配的系统结构框图;

图3为本发明具体示例所述的一种负载均衡分配的方法流程图。

附图中,各标号所代表的部件列表如下:

1、预处理模块,2、信息获取模块,3、记录读取模块,4、分配模块,5、监控模块。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,为本发明实施例1所述的一种负载均衡分配的方法,具体包括以下步骤:

步骤1:发起负载分配任务,对任务进行配置和预处理;

步骤2:获取任务的相关信息和节点信息;

步骤3:根据相关信息和节点信息从内存库中读取待分配的记录;

步骤4:将待分配的记录分发到相应进程下;

步骤5:判断是否存在任务配置更新或节点信息异常,如果是,执行步骤2;否则,执行步骤6;

步骤6:判断待分配记录是否全部分配完成,如果是,结束;否则,执行步骤4。

本发明实施例2所述的一种负载均衡分配的方法,在实施例1的基础上,所述相关信息包括进程个数、进程ID、分发表名及字段名等信息。

本发明实施例3所述的一种负载均衡分配的方法,在实施例1或2的基础上,所述预处理包括启动客户端,从客户端获取对应本次任务的节点信息,以实现对负载分配进程的动态调度管理。

本发明实施例4所述的一种负载均衡分配的方法,在实施例1-3任一实施例的基础上,所述步骤4中按照设定的算法将记录的分发字段更新为出口进程ID,进而按照出口进程ID将记录分发到相应的进程下。

本发明实施例5所述的一种负载均衡分配的方法,在实施例1-4任一实施例的基础上,所述获取节点信息采用抢占式先注册客户端获取对应本次任务的节点信息的方式。

本发明实施例6所述的一种负载均衡分配的方法,在实施例1-5任一实施例的基础上,所述设定的算法包括记录数与进程数取模算法、分发表积压数量加权算法和单独路由表算法等。

如图2所示,为本发明实施例1所述的一种负载均衡分配的系统,包括预处理模块1、信息获取模块2、记录读取模块3、分配模块4和监控模块5;

所述预处理模块1用于发起负载分配任务,对任务进行配置和预处理;

所述信息获取模块2用于获取任务的相关信息和节点信息;

所述记录读取模块3用于根据相关信息和节点信息从内存库中读取待分配的记录;

所述分配模块4用于将待分配的记录分发到相应进程下,直到所述分配记录全部分配完成;

所述监控模块5用于监控分配模块分配记录过程中,当存在任务配置更新或节点信息异常,触发信息获取模块重新获取相关信息和节点信息。

本发明实施例2所述的一种负载均衡分配的系统,在实施例1的基础上,所述相关信息包括进程个数、进程ID、分发表名及字段名等信息。

本发明实施例3所述的一种负载均衡分配的系统,在实施例1或2的基础上,所述预处理包括启动客户端,从客户端获取对应本次任务的节点信息,以实现对负载分配进程的动态调度管理。

本发明实施例4所述的一种负载均衡分配的系统,在实施例1-3任一实施例的基础上,所述分配模块中按照设定的算法将记录的分发字段更新为出口进程ID,进而按照出口进程ID将记录分发到相应的进程下。

如图3所示,本发明所述负载均衡分配的方法的具体示例包括以下步骤:

1、在crontab中配置任务负载均衡进程的调度任务。

2、启动zookeeper客户端,任务负载均衡进程(RLB)每次启动时都以抢占式先注册zookeeper,获取本次处理的节点信息,以实现对负载进程的动态调度管理。

3、任务负载均衡进程从zookeeper树中获取接续模块进程(APP)个数、进程ID、分发表名及字段名等信息。

4、根据进程数从分布式内存库获取一批待分发的记录。

5、分发线程按一定算法(如记录数与进程数取模、分发表积压数量加权、单独路由表等)确定将记录分发到相应接续模块进程下。

6、监听线程负责判断zookeeper上静态配置树信息是否变化(配置更新或节点异常),如果变化则需要重新读取信息,然后再按新的配置进行分发。如果未变化,分发线程继续取记录按原配置进行分发。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1