一种负载均衡方法及系统.pdf

上传人:00062****4422 文档编号:4080376 上传时间:2018-08-14 格式:PDF 页数:13 大小:1.08MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310373164.4

申请日:

2013.08.22

公开号:

CN104426936A

公开日:

2015.03.18

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 29/08申请日:20130822|||公开

IPC分类号:

H04L29/08; H04L12/803(2013.01)I

主分类号:

H04L29/08

申请人:

中兴通讯股份有限公司

发明人:

刘德洪

地址:

518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦

优先权:

专利代理机构:

深圳鼎合诚知识产权代理有限公司44281

代理人:

薛祥辉

PDF下载: PDF下载
内容摘要

本发明公开了一种负载均衡方法及系统,在负载均衡过程中,登记服务提供模块所能提供的服务;然后在服务使用模块发起的服务请求后,根据该请求获取能提供对应服务的服务提供模块的列表,进而根据该列表,通过负载均衡算法从该列表中选择服务提供模块执行服务使用模块所请求的服务。可见,本发明是根据某一种服务的服务提供模块的列表进行负载计算,也即是以一种服务为单位进行负载均衡计算,并非是以一个服务器为单位进行负载均衡计算;因此可避免对同一服务器提供的其他服务发生误判的情况,也就不会影响到由同一服务提供模块提供的其他服务的执行,进而可提高资源的利用率。

权利要求书

权利要求书1.  一种负载均衡方法,其特征在于,包括:登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。2.  如权利要求1所述的负载均衡方法,其特征在于,登记服务提供模块所能提供的服务包括:服务提供模块向监控模块登记其所提供的服务;所述监控模块生成与各种服务对应的服务提供模块的列表。3.  如权利要求2所述的负载均衡方法,其特征在于,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表包括:服务使用模块向所述监控模块发送服务请求;所述监控模块根据所述服务请求向所述服务使用模块反馈能提供对应服务的服务提供模块的列表。4.  如权利要求1-3任一项所述的负载均衡方法,其特征在于,根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务包括:所述服务使用模块根据所述列表,通过负载均衡算法从该列表中选择相应的服务提供模块;所述服务使用模块调用所选择的服务提供模块执行其所请求的服务。5.  如权利要求1-3任一项所述的负载均衡方法,其特征在于,所述方法还包括:统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。6.  如权利要求1-3任一项所述的负载均衡方法,其特征在于,所述方 法还包括:统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。7.  一种负载均衡系统,其特征在于,包括:监控模块、负载均衡处理模块;所述监控模块包括登记子模块,用于登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;所述负载均衡处理模块用于根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。8.  如权利要求7所述的负载均衡系统,其特征在于,包括:所述登记子模块登记服务提供模块所能提供的服务包括:服务提供模块向所述登记子模块登记其所提供的服务;所述登记子模块生成与各种服务对应的服务提供模块的列表。9.  如权利要求8所述的负载均衡系统,其特征在于,所述登记子模块根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表包括:服务使用模块向所述登记子模块发送服务请求;所述登记子模块根据所述服务请求向所述负载均衡处理模块反馈能提供对应服务的服务提供模块的列表。10.  如权利要求7-9任一项所述的负载均衡系统,其特征在于,所述负载均衡处理模块设置于各服务使用模块中。11.  如权利要求7-9任一项所述的负载均衡系统,其特征在于,所述监控模块还包括第一统计子模块,用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。12.  如权利要求7-9任一项所述的负载均衡系统,其特征在于,所述监控模块还包括第二统计子模块,用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。

说明书

说明书一种负载均衡方法及系统
技术领域
本发明涉及通信领域,具体涉及一种负载均衡方法及系统。
背景技术
随着系统业务的访问量增加、数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。而负载均衡,就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,从而共同完成工作任务,以便获得更高的资源利用率,提供系统的吞吐率,降低响应时间,从而避免负载过重。
现有的负载均衡有硬负载均衡和软负载均衡两种方式;其中,硬负载均衡是采用负载均衡设备,将服务请求以服务提供者(及服务器)为单位,按照负载规则分摊到各个操作单元上,这种硬负载均衡成本比较高,而随着业务量的增加,其设备成本也会不断的增加。
软负载均衡技术采用软件替代硬件设备,在客户端有待业务处理的时候,直接选出负载较轻的服务器,然后与该服务器上的服务对象建立连接,由服务对象处理完成客户端发送的相应业务请求。
不管是现有的软负载均衡技术,还是硬负载均衡技术,其在进行负载均衡的计算过程中,都是以服务器为单位作为判断标准。在在分布式应用系统中当存在大量客户端并发操作时,与客户端建立连接的服务器则可能处理多个服务类型的请求,提供多种服务,系统在运行过程中,可能会出现一个服务器中的某一种服务负载较重,其他服务的负载较轻的情况;此时以一个服务器为单位作为判断标准时,会导致该服务器中的某一个服务负载较大、运行过慢时,就会导致判断该整个服务器负载过重,这对该服务器中其他负载并不过程的服务来说则是一个误判,从而影响到该服务器中其他服务的执行,降低资源的利用率。
发明内容
本发明要解决的主要技术问题是,提供一种负载均衡方法及系统,解决现有负载均衡处理过程中以服务器为单位判断负载是否过重,导致对该服务器中负载并未过重的服务产生误判,进而降低了资源的利用率。
为解决上述技术问题,本发明提供一种负载均衡方法,包括:
登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;
根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。
在本发明的一种实施例中,登记服务提供模块所能提供的服务包括:
服务提供模块向监控模块登记其所提供的服务;
所述监控模块生成与各种服务对应的服务提供模块的列表。
在本发明的一种实施例中,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表包括:
服务使用模块向所述监控模块发送服务请求;
所述监控模块根据所述服务请求向所述服务使用模块反馈能提供对应服务的服务提供模块的列表。
在本发明的一种实施例中,根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务包括:
所述服务使用模块根据所述列表,通过负载均衡算法从该列表中选择相应的服务提供模块;
所述服务使用模块调用所选择的服务提供模块执行其所请求的服务。
在本发明的一种实施例中,所述方法还包括:统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。
在本发明的一种实施例中,所述方法还包括:统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。
为了解决上述问题,本发明还提供了一种负载均衡系统,包括:监控模块、负载均衡处理模块;
所述监控模块包括登记子模块,用于登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;
所述负载均衡处理模块用于根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。
在本发明的一种实施例中,包括:所述登记子模块登记服务提供模块所能提供的服务包括:
服务提供模块向所述登记子模块登记其所提供的服务;
所述登记子模块生成与各种服务对应的服务提供模块的列表。
在本发明的一种实施例中,所述登记子模块根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表包括:
服务使用模块向所述登记子模块发送服务请求;
所述登记子模块根据所述服务请求向所述负载均衡处理模块反馈能提供对应服务的服务提供模块的列表。
在本发明的一种实施例中,所述负载均衡处理模块设置于各服务使用模块 中。
在本发明的一种实施例中,所述监控模块还包括第一统计子模块,用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。
在本发明的一种实施例中,所述监控模块还包括第二统计子模块,用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。
本发明的有益效果是:
本发明提供的负载均衡方法及系统,在负载均衡过程中,登记服务提供模块所能提供的服务;然后在服务使用模块发起的服务请求后,根据该请求获取能提供对应服务的服务提供模块的列表,进而根据该列表,通过负载均衡算法从该列表中选择服务提供模块执行服务使用模块所请求的服务。可见,本发明是根据某一种服务的服务提供模块的列表进行负载计算,也即是以一种服务为单位进行负载均衡计算,并非是以一个服务器为单位进行负载均衡计算;因此可避免对同一服务器提供的其他服务发生误判的情况,也就不会影响到由同一服务提供模块提供的其他服务的执行,进而可提高资源的利用率。
附图说明
图1为本发明一种实施例中的负载均衡方法流程示意图;
图2为图1中登记服务提供模块所能提供的服务的流程示意图;
图3为图1中根据服务请求获取服务提供模块的列表的流程示意图;
图4为图1中根据服务提供模块的列表选择服务提供模块的流程示意图;
图5为本发明一种实施例中减少服务提供模块数量的流程示意图;
图6为本发明一种实施例中增加服务提供模块数量的流程示意图;
图7为本发明一种实施例中的负载均衡系统结构示意图一;
图8为本发明一种实施例中的负载均衡系统结构示意图二;
图9为基于图8所示的系统进行负载均衡方法流程示意图;
图10为基于图8所示的系统减少服务提供模块数量的流程示意图。
具体实施方式
本发明的提供的负载均衡方法以单个服务为单位进行负载均衡处理,并非以一个服务器为单位进行处理,因此可避免由于服务器中各服务出现严重不均衡时,导致对服务器中负载并未过重的服务出现误判,影响这类服务的执行,降低资源的利用率。为了更好的理解本发明,下面通过具体实施方式结合附图对本发明作进一步详细说明。
请参见图1所示,本实施例提供的负载均衡方法包括:
步骤101:登记服务提供模块所能提供的服务;
步骤102:根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;
步骤103:根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。
本实施例中的服务提供模块即为提供各种服务(业务)的服务提供者,其可以是各种应用程序模块,也可以是各种硬件模块。本实施例中,多个服务提供模块可设置于一个服务器中,也可一个服务器中只设置一个服务提供模块;一个服务提供模块可提供多种服务,也可只提供一种服务;具体的设置都可根据实际的应用情况进行而定。
本实施例中的服务使用模块即为各种服务的消费者,其可以是各种应用程序,也可以是各种硬件模块。一个客户端中可同时设置多个服务使用模块,也 可只设置一个服务使用模块;一个服务使用模块可同时使用多种服务,也可设置为同一时刻只使用一种服务。
上述步骤101中,登记服务提供模块所能提供的服务可以是服务提供模块主动的进行登记;也可以是服务提供模块应相关的登记要求进行登记;下面以服务提供模块主动进行服务登记为例进行说明,请参见图2所示,其包括:
步骤1011:服务提供模块向监控模块登记其所提供的服务;
步骤1012:监控模块根据各服务提供模块的登记生成与各种服务对应的服务提供模块的列表。
上述步骤102中,可以是监控模块根据服务使用模块发起的服务请求,所述服务使用模块反馈能提供对应服务的服务提供模块的列表。也可以是其他的第三方模块、甚至是服务提供模块根据服务使用模块发起的服务请求,所述服务使用模块反馈能提供对应服务的服务提供模块的列表。本实施例以监控模块提供上述列表为例进行说明,请参见图3所示,其包括:
步骤1021:服务使用模块向所监控模块发送服务请求;
步骤1022:监控模块根据接收到的服务请求向服务使用模块反馈能提供对应服务的服务提供模块的列表。
上述步骤103中,根据获取的某一服务的应用服务模块的列表,计算该服务的负载可由服务使用模块执行,即在客户端这一段进行负载均衡计算;也可在服务端,即服务提供模块上进行;当然,也可在其他第三方模块,例如监控模块上进行。本实施例中以服务使用模块为例进行说明,请参见图4所示,其包括:
步骤1031:服务使用模块根据所述列表,通过负载均衡算法从该列表中选择相应的服务提供模块;本实施例中,负载均衡算法具体可采用软负载均衡算 法。
步骤1032:服务使用模块调用所选择的服务提供模块执行其所请求的服务。
本实施例中,服务使用模块从上述列表中选择的服务提供模块可为一个,当选择的服务提供模块调用失败时,则再重新计算选择下一个;也可一次选择多个,选择的多个可按照负载由轻到重的顺序依次排列,然后从最轻的一个开始依次调用,当调用失败时,则直接调用下一个,实现容灾性,使系统更稳定。
可见,本实施例中,通过监控模块登记对个服务进行登记的方式,使负载均衡的级别细到具体的系统内部的各服务上,一个系统(例如一个服务器)可以拆分为各种服务,以服务为单位进行负载均衡处理,以应对消费者需求,而不是将整个系统作为负载均衡的判断体,从而避免了系统中各服务提供模块负载严重不均衡的现象。
另外,在本实施例中,还可针对某一服务进行平滑的调控服务提供模块的数量,以进一步提高资源的利用率。请参见图5和图6所示,其包括:
步骤501:统计某一服务当前的负荷情况;
步骤502:根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,表明服务提供模块过剩,转至步骤503;否则,转至步骤504;
步骤503:从该服务的服务提供模块的列表中退出至少一个服务提供模块。
步骤504:不做处理。
本实施例中的第一预设阈值可根据具体的服务、具体的应用场景选择设置。
请参见图6所示,判断是否需要增加服务提供模块的流程如下:
步骤601:统计某一服务当前的负荷情况;
步骤602:根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,表明服务提供模块过少,转至步骤603;否则,转至步骤604;
步骤603:在该服务的服务提供模块的列表中则增加至少一个服务提供模块。
步骤604:不做处理。
上述过程具体可由监控模块进行,通过监控模块统计某一服务当前负载情况,进行实现该服务提供模块的平滑增加或减少,也即,当某服务的负载过重时,适量增加该服务的服务提供模块;反之,当某服务的负载过轻时,则适量减少该服务的服务提供模块;从而可增加负载均衡的稳定性和灵活性,同时进一步提高资源的利用率。
当通过图5或图6所示的过程进行调整后,监控模块可将新的服务提供模块列表发送给对应的服务使用模块,服务使用模块接收到新的列表后,可基于相应的负载均衡算法重新从该列表中选择一个服务使用模块进行通信。
请参见图7所示,该图所示为本实施例提供的负载均衡系统,包括:服务提供模块、监控模块、负载均衡处理模块以及服务使用模块,其中:
监控模块包括登记子模块,用于登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;
负载均衡处理模块用于根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。
本实施例中,登记子模块登记服务提供模块所能提供的服务包括:
服务提供模块向所述登记子模块登记其所提供的服务;
所述登记子模块生成与各种服务对应的服务提供模块的列表。
本实施例中,登记子模块根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表包括:
服务使用模块向所述登记子模块发送服务请求;
所述登记子模块根据所述服务请求向所述负载均衡处理模块反馈能提供对应服务的服务提供模块的列表。
在本实施例中,监控模块还包括第一统计子模块,和第二统计子模块;第一统计子模块用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。第二统计子模块用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。
本实施例中,负载均衡处理模块可以设置于各服务使用模块中,此时则是在客户端完成负载均衡计算处理;当然也可设置在服务提供模块或监控模块中,也可单独存在。下面以负载均衡处理模块设置于各服务使用模块中,结合一个具体的示例,对本发明做进一步说明。请参见图8所示,该系统包括第一服务提供模块、第二服务提供模块、监控模块、第一服务使用模块、第二服务使用模块;其中第一服务提供模块和第二服务提供模块都可提供第一服务和第二服务;具体处理过程请参见图9所示,包括:
步骤901:第一服务提供模块和第二服务提供模块分别向监控模块登记第一服务和第二服务;
步骤902:监控模块根据各服务提供模块的登记生成个服务的服务提供模块列表,该列表可为各服务提供模块的地址列表;
步骤903:服务使用模块向监控模块发送服务请求,以查找和订阅自己需要的服务,假设此处为第一服务使用模块向监控中心请求第一服务;此处为第二服务使用模块向监控中心请求第二服务;
步骤904:监控模块根据接收到的服务请求向第一服务使用模块反馈能提供第一服务的服务提供模块列表;向第二服务使用模块反馈能提供第二服务的服 务提供模块列表;
步骤905:服务使用模块接收到该列表后,基于负载均衡算法,从该列表中选一个服务提供模块进行调用执行该服务;一般选择当前负载轻的服务提供模块进行调用;例如当第一服务提供模块当前第一服务的负载小,则第一服务使用模块调用第一服务提供模块进行通信;相反,如果第二服务提供模块当前第一服务的负载小,则调用第二服务提供模块进行通信;当第一服务提供模块当前第二服务的负载小,则第二服务使用模块调用第一服务提供模块进行通信;相反,如果第二服务提供模块当前第一服务的负载小,则调用第二服务提供模块进行通信。
请参见图10所示,在上述过程中,本实施例还可对个服务的服务提供模块的数量进行控制,下面以减少第一服务的服务提供者的数量为例进行说明:
步骤1001:统计第一服务当前的负荷情况;
步骤1002:判断第一服务当前负荷是否小于第一预设阈值,如是,表明服务提供模块过剩,转至步骤1003;否则,转至步骤1009;
步骤1003:向对应的服务提供者发送取消服务的指令,例如对第二服务提供模块发送取消服务指令;
步骤1004:第二服务提供模块向监控模块发送退出第一服务请求;
步骤1005:监控模块收到退出第一服务请求后,从第一服务的附服务提供模块的列表中删除第二服务提供模块;
步骤1006:监控模块向订阅该第一服务的所有服务使用模块发送新的服务提供模块的列表;此处监控模块则向第一服务使用模块提供新的第一服务的服务提供模块的列表;
步骤1007:第一服务使用模块接收到该新的列表后,更新本地的第一服务 的服务提供模块的列表;
步骤1008:第一服务使用模块从该新的第一服务的服务提供模块的列表中,基于负载均衡算法重新选择一个服务提供模块进行调用和通讯;此处的第一服务使用模块则从该列表中选择第一服务提供模块进行调用和通讯。
步骤1009:不作处理。
可见,本发明通过监控模块登记对个服务进行登记的方式,使负载均衡的级别细到具体的系统内部的各服务上,一个系统(例如一个服务器)可以拆分为各种服务,以服务为单位进行负载均衡处理,以应对消费者需求,而不是将整个系统作为负载均衡的判断体,从而避免了系统中各服务提供模块负载严重不均衡的现象。同时,本发明还可针对某一服务进行平滑的调控服务提供模块的数量,从而提高负载均衡的稳定性和灵活性。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

一种负载均衡方法及系统.pdf_第1页
第1页 / 共13页
一种负载均衡方法及系统.pdf_第2页
第2页 / 共13页
一种负载均衡方法及系统.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种负载均衡方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种负载均衡方法及系统.pdf(13页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201310373164.4(22)申请日 2013.08.22H04L 29/08(2006.01)H04L 12/803(2013.01)(71)申请人中兴通讯股份有限公司地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦(72)发明人刘德洪(74)专利代理机构深圳鼎合诚知识产权代理有限公司 44281代理人薛祥辉(54) 发明名称一种负载均衡方法及系统(57) 摘要本发明公开了一种负载均衡方法及系统,在负载均衡过程中,登记服务提供模块所能提供的服务;然后在服务使用模块发起的服务请求后,根据该请求获取能提供对应服。

2、务的服务提供模块的列表,进而根据该列表,通过负载均衡算法从该列表中选择服务提供模块执行服务使用模块所请求的服务。可见,本发明是根据某一种服务的服务提供模块的列表进行负载计算,也即是以一种服务为单位进行负载均衡计算,并非是以一个服务器为单位进行负载均衡计算;因此可避免对同一服务器提供的其他服务发生误判的情况,也就不会影响到由同一服务提供模块提供的其他服务的执行,进而可提高资源的利用率。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书6页 附图4页(10)申请公布号 CN 104426936 A(43)申请公布日 2015.03.18CN 104。

3、426936 A1/2页21.一种负载均衡方法,其特征在于,包括:登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。2.如权利要求1所述的负载均衡方法,其特征在于,登记服务提供模块所能提供的服务包括:服务提供模块向监控模块登记其所提供的服务;所述监控模块生成与各种服务对应的服务提供模块的列表。3.如权利要求2所述的负载均衡方法,其特征在于,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表包括:服务使用模块向所述监控模块发送服务请求。

4、;所述监控模块根据所述服务请求向所述服务使用模块反馈能提供对应服务的服务提供模块的列表。4.如权利要求1-3任一项所述的负载均衡方法,其特征在于,根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务包括:所述服务使用模块根据所述列表,通过负载均衡算法从该列表中选择相应的服务提供模块;所述服务使用模块调用所选择的服务提供模块执行其所请求的服务。5.如权利要求1-3任一项所述的负载均衡方法,其特征在于,所述方法还包括:统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。6。

5、.如权利要求1-3任一项所述的负载均衡方法,其特征在于,所述方法还包括:统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。7.一种负载均衡系统,其特征在于,包括:监控模块、负载均衡处理模块;所述监控模块包括登记子模块,用于登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;所述负载均衡处理模块用于根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。8.如权利要求7所述的负载均衡系统,其特征在于,包括:所述登记子模。

6、块登记服务提供模块所能提供的服务包括:服务提供模块向所述登记子模块登记其所提供的服务;所述登记子模块生成与各种服务对应的服务提供模块的列表。9.如权利要求8所述的负载均衡系统,其特征在于,所述登记子模块根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表包括:服务使用模块向所述登记子模块发送服务请求;所述登记子模块根据所述服务请求向所述负载均衡处理模块反馈能提供对应服务的服务提供模块的列表。权 利 要 求 书CN 104426936 A2/2页310.如权利要求7-9任一项所述的负载均衡系统,其特征在于,所述负载均衡处理模块设置于各服务使用模块中。11.如权利要求7-9任一项。

7、所述的负载均衡系统,其特征在于,所述监控模块还包括第一统计子模块,用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。12.如权利要求7-9任一项所述的负载均衡系统,其特征在于,所述监控模块还包括第二统计子模块,用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。权 利 要 求 书CN 104426936 A1/6页4一种负载均衡方法及系统技术领域0001 本发明涉及通信领域,具体涉及一种负载均衡方法及系。

8、统。背景技术0002 随着系统业务的访问量增加、数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。而负载均衡,就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,从而共同完成工作任务,以便获得更高的资源利用率,提供系统的吞吐率,降低响应时间,从而避免负载过重。0003 现有的负载均衡有硬负载均衡和软负载均衡两种方式;其中,硬负载均衡是采用负载均衡设备,将服务请求以服务提供者(及服务器)为单位,按照负载规则分摊到各个操作单元上,这种硬负载均衡成本比较高,而随着业务量的增加,其设备成本也会不断的增加。0004 软负载均衡技术采用软件替代硬件设备,在客。

9、户端有待业务处理的时候,直接选出负载较轻的服务器,然后与该服务器上的服务对象建立连接,由服务对象处理完成客户端发送的相应业务请求。0005 不管是现有的软负载均衡技术,还是硬负载均衡技术,其在进行负载均衡的计算过程中,都是以服务器为单位作为判断标准。在在分布式应用系统中当存在大量客户端并发操作时,与客户端建立连接的服务器则可能处理多个服务类型的请求,提供多种服务,系统在运行过程中,可能会出现一个服务器中的某一种服务负载较重,其他服务的负载较轻的情况;此时以一个服务器为单位作为判断标准时,会导致该服务器中的某一个服务负载较大、运行过慢时,就会导致判断该整个服务器负载过重,这对该服务器中其他负载并。

10、不过程的服务来说则是一个误判,从而影响到该服务器中其他服务的执行,降低资源的利用率。发明内容0006 本发明要解决的主要技术问题是,提供一种负载均衡方法及系统,解决现有负载均衡处理过程中以服务器为单位判断负载是否过重,导致对该服务器中负载并未过重的服务产生误判,进而降低了资源的利用率。0007 为解决上述技术问题,本发明提供一种负载均衡方法,包括:0008 登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;0009 根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。0010 在本发明的一种实施例中,登。

11、记服务提供模块所能提供的服务包括:0011 服务提供模块向监控模块登记其所提供的服务;0012 所述监控模块生成与各种服务对应的服务提供模块的列表。0013 在本发明的一种实施例中,根据服务使用模块发起的服务请求,获取能提供对应说 明 书CN 104426936 A2/6页5服务的服务提供模块的列表包括:0014 服务使用模块向所述监控模块发送服务请求;0015 所述监控模块根据所述服务请求向所述服务使用模块反馈能提供对应服务的服务提供模块的列表。0016 在本发明的一种实施例中,根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务包括:0017 所述服务使。

12、用模块根据所述列表,通过负载均衡算法从该列表中选择相应的服务提供模块;0018 所述服务使用模块调用所选择的服务提供模块执行其所请求的服务。0019 在本发明的一种实施例中,所述方法还包括:统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。0020 在本发明的一种实施例中,所述方法还包括:统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。0021 为了解决上述问题,本发明还提供了一种负载均衡系统,包括:监控模。

13、块、负载均衡处理模块;0022 所述监控模块包括登记子模块,用于登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;0023 所述负载均衡处理模块用于根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。0024 在本发明的一种实施例中,包括:所述登记子模块登记服务提供模块所能提供的服务包括:0025 服务提供模块向所述登记子模块登记其所提供的服务;0026 所述登记子模块生成与各种服务对应的服务提供模块的列表。0027 在本发明的一种实施例中,所述登记子模块根据服务使用模块发起的服务请求,获取能提供对应服。

14、务的服务提供模块的列表包括:0028 服务使用模块向所述登记子模块发送服务请求;0029 所述登记子模块根据所述服务请求向所述负载均衡处理模块反馈能提供对应服务的服务提供模块的列表。0030 在本发明的一种实施例中,所述负载均衡处理模块设置于各服务使用模块中。0031 在本发明的一种实施例中,所述监控模块还包括第一统计子模块,用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。0032 在本发明的一种实施例中,所述监控模块还包括第二统计子模块,用于统计某一服务当前的负荷情况,根据统计结果确定该服务当。

15、前负荷是否大于第二预设阈值,如是,则在该服务的服务提供模块的列表中增加至少一个服务提供模块。0033 本发明的有益效果是:0034 本发明提供的负载均衡方法及系统,在负载均衡过程中,登记服务提供模块所能说 明 书CN 104426936 A3/6页6提供的服务;然后在服务使用模块发起的服务请求后,根据该请求获取能提供对应服务的服务提供模块的列表,进而根据该列表,通过负载均衡算法从该列表中选择服务提供模块执行服务使用模块所请求的服务。可见,本发明是根据某一种服务的服务提供模块的列表进行负载计算,也即是以一种服务为单位进行负载均衡计算,并非是以一个服务器为单位进行负载均衡计算;因此可避免对同一服务。

16、器提供的其他服务发生误判的情况,也就不会影响到由同一服务提供模块提供的其他服务的执行,进而可提高资源的利用率。附图说明0035 图1为本发明一种实施例中的负载均衡方法流程示意图;0036 图2为图1中登记服务提供模块所能提供的服务的流程示意图;0037 图3为图1中根据服务请求获取服务提供模块的列表的流程示意图;0038 图4为图1中根据服务提供模块的列表选择服务提供模块的流程示意图;0039 图5为本发明一种实施例中减少服务提供模块数量的流程示意图;0040 图6为本发明一种实施例中增加服务提供模块数量的流程示意图;0041 图7为本发明一种实施例中的负载均衡系统结构示意图一;0042 图8。

17、为本发明一种实施例中的负载均衡系统结构示意图二;0043 图9为基于图8所示的系统进行负载均衡方法流程示意图;0044 图10为基于图8所示的系统减少服务提供模块数量的流程示意图。具体实施方式0045 本发明的提供的负载均衡方法以单个服务为单位进行负载均衡处理,并非以一个服务器为单位进行处理,因此可避免由于服务器中各服务出现严重不均衡时,导致对服务器中负载并未过重的服务出现误判,影响这类服务的执行,降低资源的利用率。为了更好的理解本发明,下面通过具体实施方式结合附图对本发明作进一步详细说明。0046 请参见图1所示,本实施例提供的负载均衡方法包括:0047 步骤101:登记服务提供模块所能提供。

18、的服务;0048 步骤102:根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;0049 步骤103:根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。0050 本实施例中的服务提供模块即为提供各种服务(业务)的服务提供者,其可以是各种应用程序模块,也可以是各种硬件模块。本实施例中,多个服务提供模块可设置于一个服务器中,也可一个服务器中只设置一个服务提供模块;一个服务提供模块可提供多种服务,也可只提供一种服务;具体的设置都可根据实际的应用情况进行而定。0051 本实施例中的服务使用模块即为各种服务的消费者,其可以是各种应用程序,也可。

19、以是各种硬件模块。一个客户端中可同时设置多个服务使用模块,也可只设置一个服务使用模块;一个服务使用模块可同时使用多种服务,也可设置为同一时刻只使用一种服务。0052 上述步骤101中,登记服务提供模块所能提供的服务可以是服务提供模块主动的进行登记;也可以是服务提供模块应相关的登记要求进行登记;下面以服务提供模块主动说 明 书CN 104426936 A4/6页7进行服务登记为例进行说明,请参见图2所示,其包括:0053 步骤1011:服务提供模块向监控模块登记其所提供的服务;0054 步骤1012:监控模块根据各服务提供模块的登记生成与各种服务对应的服务提供模块的列表。0055 上述步骤102。

20、中,可以是监控模块根据服务使用模块发起的服务请求,所述服务使用模块反馈能提供对应服务的服务提供模块的列表。也可以是其他的第三方模块、甚至是服务提供模块根据服务使用模块发起的服务请求,所述服务使用模块反馈能提供对应服务的服务提供模块的列表。本实施例以监控模块提供上述列表为例进行说明,请参见图3所示,其包括:0056 步骤1021:服务使用模块向所监控模块发送服务请求;0057 步骤1022:监控模块根据接收到的服务请求向服务使用模块反馈能提供对应服务的服务提供模块的列表。0058 上述步骤103中,根据获取的某一服务的应用服务模块的列表,计算该服务的负载可由服务使用模块执行,即在客户端这一段进行。

21、负载均衡计算;也可在服务端,即服务提供模块上进行;当然,也可在其他第三方模块,例如监控模块上进行。本实施例中以服务使用模块为例进行说明,请参见图4所示,其包括:0059 步骤1031:服务使用模块根据所述列表,通过负载均衡算法从该列表中选择相应的服务提供模块;本实施例中,负载均衡算法具体可采用软负载均衡算法。0060 步骤1032:服务使用模块调用所选择的服务提供模块执行其所请求的服务。0061 本实施例中,服务使用模块从上述列表中选择的服务提供模块可为一个,当选择的服务提供模块调用失败时,则再重新计算选择下一个;也可一次选择多个,选择的多个可按照负载由轻到重的顺序依次排列,然后从最轻的一个开。

22、始依次调用,当调用失败时,则直接调用下一个,实现容灾性,使系统更稳定。0062 可见,本实施例中,通过监控模块登记对个服务进行登记的方式,使负载均衡的级别细到具体的系统内部的各服务上,一个系统(例如一个服务器)可以拆分为各种服务,以服务为单位进行负载均衡处理,以应对消费者需求,而不是将整个系统作为负载均衡的判断体,从而避免了系统中各服务提供模块负载严重不均衡的现象。0063 另外,在本实施例中,还可针对某一服务进行平滑的调控服务提供模块的数量,以进一步提高资源的利用率。请参见图5和图6所示,其包括:0064 步骤501:统计某一服务当前的负荷情况;0065 步骤502:根据统计结果确定该服务当。

23、前负荷是否小于第一预设阈值,如是,表明服务提供模块过剩,转至步骤503;否则,转至步骤504;0066 步骤503:从该服务的服务提供模块的列表中退出至少一个服务提供模块。0067 步骤504:不做处理。0068 本实施例中的第一预设阈值可根据具体的服务、具体的应用场景选择设置。0069 请参见图6所示,判断是否需要增加服务提供模块的流程如下:0070 步骤601:统计某一服务当前的负荷情况;0071 步骤602:根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,表明服务提供模块过少,转至步骤603;否则,转至步骤604;说 明 书CN 104426936 A5/6页80072 步骤6。

24、03:在该服务的服务提供模块的列表中则增加至少一个服务提供模块。0073 步骤604:不做处理。0074 上述过程具体可由监控模块进行,通过监控模块统计某一服务当前负载情况,进行实现该服务提供模块的平滑增加或减少,也即,当某服务的负载过重时,适量增加该服务的服务提供模块;反之,当某服务的负载过轻时,则适量减少该服务的服务提供模块;从而可增加负载均衡的稳定性和灵活性,同时进一步提高资源的利用率。0075 当通过图5或图6所示的过程进行调整后,监控模块可将新的服务提供模块列表发送给对应的服务使用模块,服务使用模块接收到新的列表后,可基于相应的负载均衡算法重新从该列表中选择一个服务使用模块进行通信。。

25、0076 请参见图7所示,该图所示为本实施例提供的负载均衡系统,包括:服务提供模块、监控模块、负载均衡处理模块以及服务使用模块,其中:0077 监控模块包括登记子模块,用于登记服务提供模块所能提供的服务,根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表;0078 负载均衡处理模块用于根据所述列表,通过负载均衡算法从该列表中选择服务提供模块执行所述服务使用模块所请求的服务。0079 本实施例中,登记子模块登记服务提供模块所能提供的服务包括:0080 服务提供模块向所述登记子模块登记其所提供的服务;0081 所述登记子模块生成与各种服务对应的服务提供模块的列表。0082 本实。

26、施例中,登记子模块根据服务使用模块发起的服务请求,获取能提供对应服务的服务提供模块的列表包括:0083 服务使用模块向所述登记子模块发送服务请求;0084 所述登记子模块根据所述服务请求向所述负载均衡处理模块反馈能提供对应服务的服务提供模块的列表。0085 在本实施例中,监控模块还包括第一统计子模块,和第二统计子模块;第一统计子模块用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否小于第一预设阈值,如是,则从该服务的服务提供模块的列表中退出至少一个服务提供模块。第二统计子模块用于统计某一服务当前的负荷情况,根据统计结果确定该服务当前负荷是否大于第二预设阈值,如是,则在该服务的服。

27、务提供模块的列表中增加至少一个服务提供模块。0086 本实施例中,负载均衡处理模块可以设置于各服务使用模块中,此时则是在客户端完成负载均衡计算处理;当然也可设置在服务提供模块或监控模块中,也可单独存在。下面以负载均衡处理模块设置于各服务使用模块中,结合一个具体的示例,对本发明做进一步说明。请参见图8所示,该系统包括第一服务提供模块、第二服务提供模块、监控模块、第一服务使用模块、第二服务使用模块;其中第一服务提供模块和第二服务提供模块都可提供第一服务和第二服务;具体处理过程请参见图9所示,包括:0087 步骤901:第一服务提供模块和第二服务提供模块分别向监控模块登记第一服务和第二服务;0088。

28、 步骤902:监控模块根据各服务提供模块的登记生成个服务的服务提供模块列表,该列表可为各服务提供模块的地址列表;0089 步骤903:服务使用模块向监控模块发送服务请求,以查找和订阅自己需要的服说 明 书CN 104426936 A6/6页9务,假设此处为第一服务使用模块向监控中心请求第一服务;此处为第二服务使用模块向监控中心请求第二服务;0090 步骤904:监控模块根据接收到的服务请求向第一服务使用模块反馈能提供第一服务的服务提供模块列表;向第二服务使用模块反馈能提供第二服务的服务提供模块列表;0091 步骤905:服务使用模块接收到该列表后,基于负载均衡算法,从该列表中选一个服务提供模块。

29、进行调用执行该服务;一般选择当前负载轻的服务提供模块进行调用;例如当第一服务提供模块当前第一服务的负载小,则第一服务使用模块调用第一服务提供模块进行通信;相反,如果第二服务提供模块当前第一服务的负载小,则调用第二服务提供模块进行通信;当第一服务提供模块当前第二服务的负载小,则第二服务使用模块调用第一服务提供模块进行通信;相反,如果第二服务提供模块当前第一服务的负载小,则调用第二服务提供模块进行通信。0092 请参见图10所示,在上述过程中,本实施例还可对个服务的服务提供模块的数量进行控制,下面以减少第一服务的服务提供者的数量为例进行说明:0093 步骤1001:统计第一服务当前的负荷情况;00。

30、94 步骤1002:判断第一服务当前负荷是否小于第一预设阈值,如是,表明服务提供模块过剩,转至步骤1003;否则,转至步骤1009;0095 步骤1003:向对应的服务提供者发送取消服务的指令,例如对第二服务提供模块发送取消服务指令;0096 步骤1004:第二服务提供模块向监控模块发送退出第一服务请求;0097 步骤1005:监控模块收到退出第一服务请求后,从第一服务的附服务提供模块的列表中删除第二服务提供模块;0098 步骤1006:监控模块向订阅该第一服务的所有服务使用模块发送新的服务提供模块的列表;此处监控模块则向第一服务使用模块提供新的第一服务的服务提供模块的列表;0099 步骤10。

31、07:第一服务使用模块接收到该新的列表后,更新本地的第一服务的服务提供模块的列表;0100 步骤1008:第一服务使用模块从该新的第一服务的服务提供模块的列表中,基于负载均衡算法重新选择一个服务提供模块进行调用和通讯;此处的第一服务使用模块则从该列表中选择第一服务提供模块进行调用和通讯。0101 步骤1009:不作处理。0102 可见,本发明通过监控模块登记对个服务进行登记的方式,使负载均衡的级别细到具体的系统内部的各服务上,一个系统(例如一个服务器)可以拆分为各种服务,以服务为单位进行负载均衡处理,以应对消费者需求,而不是将整个系统作为负载均衡的判断体,从而避免了系统中各服务提供模块负载严重不均衡的现象。同时,本发明还可针对某一服务进行平滑的调控服务提供模块的数量,从而提高负载均衡的稳定性和灵活性。0103 以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。说 明 书CN 104426936 A1/4页10图1图2图3说 明 书 附 图CN 104426936 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1