动态反馈负载分发方法和装置的制作方法

文档序号:7663369阅读:151来源:国知局
专利名称:动态反馈负载分发方法和装置的制作方法
技术领域
本发明涉及ii/f言领i或,更具体;也,涉及一种动态反々贵负载分发
方法和装置。
背景技术
多目的端负载均衡是网络系统中的常见技术,该技术提供了一 种扩展服务器带宽和增加服务器吞吐量的廉价有效方法,既可加强 网络数据处理能力,又可提高网络的灵活性及可用性。其主要作用
有两点保证高可靠性, 一旦负载均衡的某目的端出现故障,其它 目的端可以-接替其工作;以及节约成本,不必额外使用热备^H支术 保证可靠性而增加i殳备成本。
常见的负载均《軒才支术^口下孝仑i句(Simple Round Robin )方式一口 权重轮询(Weighted Round Robin )方式。
一、4合询方式
各目的端轮流处理请求消息。该方式对应用服务器的硬件环境、 操作系统乃至应用软件没有要求,各目的端相对独立;无需为实现 负载均衡而增加软硬件投资,是最简单、最传统的多目的端负载均 衡方式,但该方式在功能和性能上存在如下问题可靠性无法保证, 当某目的端宕机,分发进程无法发现,例如在3台目的端系统中, 如1台宕机,将有1/3消息无法响应,严重影响系统服务质量;以
及负荷分担不一定合理,各目的端性能可有差异,在性能不同的目 的端间平均分配请求,性能差的目的端可能成为系统瓶颈,而性能 好的目的端资源没有被充分利用,造成一殳资浪费。
二、纟又重4企询方式
权重轮询是轮询分发的改进版本,即为各个目的端配置不同权 重,请求消息按权重比例分发到各个目的端。
虽然,上述方式规避了轮询方式中因设备处理能力差异造成的 "不公平"现象,但目的端的突发进程可能在某时间段内大量占用该 设备的系统资源,权重專仑询方式无法4全测这种异常,从而影响处理性能。

发明内容
为了解决现有技术中的问题,本发明提出了 一种动态反馈负载 分发方法和装置,用于在多个目的端与源端之间动态分发消息。
根据本发明的动态反馈负载分发方法包括以下步骤步骤一 , 通过关键参数采集模块收集多个目的端中的每个目的端的关键参 数,并将关键参数发送至决策模块;步骤二,决策模块对关键参数 进行分析,以确定每个目的端的处理能力;以及步骤三,当接收到 来自源端的信息时,消息处理模块根据保存在消息处理模块中的关 于每个目的端的处理能力来分发消息。
其中,关键参数是由CPU占用率、内存占用率、和消息队列积 压长度构成的组合,或由消息队列积压长度、消息反馈时延、和超 时消息个tt构成的组合。 当目的端是可编程系统时,关键参数包括CPU占用率、内存 占用率、和消息队列积压长度,它们是目的端的本地数据,本地数 据是通过以下方式提供给关键参数采集模块的反馈机制、通信、 或共享数据库。
当目的端是第三方系统时,关键参数包括消息队列积压长度、 消息反々贵时延、和超时消息个凄史。
在步骤二中,执行以下处理决策模块得到每个目的端的一个 负载指数;以及决策模块根据负载指数判断目的端的处理能力。
其中,负载指数与消息队列积压长度、消息反馈时延、和超时 消息个数相关联。负载指数小,则表示消息队列积压长度、消息反 馈时延、或超时消息个数的延迟小,目的端的处理能力好。与消息 队列积压长度相关耳关的负载指数所表征的延迟能力最小,与超时消
息个数相关联的负载指数所表征的延迟能力最大,以及与消息反馈 时延相关联的负载指数所表征的延迟能力居中。
另外,在步骤二中还执行以下处理通过一个过载检测才莫块确 定目的端是否过载;当目的端过载时,过载检测模块向决策模块发 送一个过载处理命令,/人而减少目的端的负载。
当每个目的端都过载时,则决策模块进入降级模式,限制源端 发送的消息的数量。
而当过载一佥测才莫块判断每个目的端过载成断《连时,目的端不4妄 收消息。
在步骤三中执行以下处理消息处理模块接收到来自源端的消 息;消息处理模块向决策模块发出取决策指令;以及消息处理模块 根据决策模块返回的关于每个目的端的处理能力来分发消息。
本发明还提供了一种动态反馈负载分发装置,用于在多个目的
端与源端之间动态分发消息,该装置包括关键参数采集模块,用 于收集多个目的端中的每个目的端的关键参数,并将关键参数发送 至决策模块;决策模块,用于对关键参数进行分析,以确定每个目 的端的处理能力,并将处理能力发送给消息处理模块;以及消息处 理模块,用于接收来自源端的信息,并根据每个目的端的处理能力 来分发消息。
另外,该装置还包括过载检测模块,用于分析关键参数,并 根据关键参数配置门限来确定目的端是否过载。
其中,过载检测模块还用于当目的端过载时,启动过载机制, 降低目的端的消息的数量,并且当每个目的端都过载时,启动降级机制。
关键参数是由CPU占用率、内存占用率、和消息队列积压长度 构成的组合,或由消息队列积压长度、消息反馈时延、和超时消息 个H构成的组合。
因此,采用本发明的方法和装置,可以收集各目的端相关信息, 通过分析比较,实时选3奪当前处理能力较强的目的端作为分发目标, 较之4仑询、才艮据IP或用户号码配置选择^各由等静态分发方式更为灵 活、主动,适应性更强。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部 分地从说明书中变得显而易见,或者通过实施本发明而了解。本发 明的目的和其他优点可通过在所写的说明书、权利要求书、以及附 图中所特别指出的结构来实现和获得。


附图用来^是供对本发明的进一 步理解,并且构成i兌明书的 一部 分,与本发明的实施例一起用于解释本发明,并不构成对本发明的
限制。在附图中
图1是根据本发明的动态反馈负载分发方法的流程图2是根据本发明的动态反馈负载分发装置的框图3是根据本发明实施例的动态反馈负载分发装置的框图;以

图4是在图3中所示装置中执行的具体消息流程图。
具体实施例方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此 处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是根据本发明的动态反馈负载分发方法的流程图。如图1 所示,包纟舌以下步头聚
步骤S102,通过关键参数采集模块收集多个目的端中的每个目 的端的关键参数,并将关键参数发送至决策模块;
步骤S104,决策模块对关键参数进行分析,以确定每个目的端 的处理能力;以及
步骤S106,当接收到来自源端的信息时,消息处理模块根据保 存在消息处理模块中的关于每个目的端的处理能力来分发消息。
其中,关4建参凄丈是由CPU占用率、内存占用率、和消息队列积 压长度构成的组合,或由消息队列积压长度、消息反馈时延、和超 时消息个数构成的组合。
当目的端是可编程系统时,关键参数包括CPU占用率、内存 占用率、和消息队列积压长度,它们是目的端的本地数据,本地数 据是通过以下方式提供给关键参数采集模块的反馈机制、通信、 或共享liU居库。
当目的端是第三方系统时,关键参数包括消息队列积压长度、 消息反4t时延、和超时消息个H。
在步骤S104中,执行以下处理决策模块得到每个目的端的 一个负载指数;以及决策模块根据负载指数判断目的端的处理能力。
其中,负载指数与消息队列积压长度、消息反馈时延、和超时 消息个数相关联。负载指数小,则表示消息队列积压长度、消息反 馈时延、或超时消息个数的延迟小,目的端的处理能力好。与消息 队列积压长度相关联的负载指数所表征的延迟能力最小,与超时消 息个数相关联的负载指数所表征的延迟能力最大,以及与消息反馈 时延相关联的负载指数所表征的延迟能力居中。
另外,在步骤S104中还执行以下处理通过一个过载检测模 块确定目的端是否过载;当目的端过载时,过载才企测冲莫块向决策才莫 块发送一个过载处理命令,从而减少目的端的负载。
当每个目的端都过载时,则决策才莫块进入降级才莫式,限制源端 发送的消息的数量。
而当过载检测模块判断每个目的端过载成断链时,目的端不接 收消息。
在步骤S106中^丸行以下处理消息处理才莫块接收到来自源端 的消息;消息处理模块向决策模块发出取决策指令;以及消息处理 模块根据决策模块返回的关于每个目的端的处理能力来分发消息。
图2是根据本发明的动态反馈负载分发装置200的框图。如图 2所示,该装置包括关键参数釆集模块202,用于收集多个目的端 中的每个目的端的关键参数,并将关键参数发送至决策模块204; 决策模块204 ,用于对关键参数进行分析,以确定每个目的端的处 理能力,并将处理能力发送给消息处理模块206;以及消息处理模 块206,用于接收来自源端的信息,并根据每个目的端的处理能力 来分发消息。
另外,该装置还包括过载检测模块,用于分析关键参数,并 根据关键参数配置门限来确定目的端是否过载。
其中,过载冲企测才莫块还用于当目的端过载时,启动过载才几制, 降低目的端的消息的数量,并且当每个目的端都过载时,启动降级 机制。
关键参数是由CPU占用率、内存占用率、和消息队列积压长度 构成的组合,或由消息队列积压长度、消息反々贵时延、和超时消息 个数构成的组合。
应了解,本发明主要在于关键参数的选择,而设备处理能力不 同,表征设备处理能力的参数很多。表征参数的选择应以普适、公 平为原则。
在本发明中,CPU占用率、内存占用率、消息队列积压长度为
目的端本地数据,而消息反馈时延、超时消息个数可内部收集。目 的端本地数据需要某种机制才能进行反馈给该动态反馈负载分发装 置,或通信,或共享数据库。 由此,产生两点问题其一,若目的端为可编程系统,则反々贵
机制不难实现,若目的端为第三方系统,则反馈机制无法实现,实
际上本发明在应用中恰恰属于后者,由此目的端本地凄t据无法获得; 其二,即便目的端参数得以反馈,若目的端本身非常繁忙,以至于 参凌t根本无法反^贵,该繁忙目的端承受的消息流量反而可能更大。
采用消息反馈时延、超时消息个数作为关键参数固然可以说明 问题,但略显单薄,经过论证,最终在发明中实现消息队列来为目 的端负载提供参数。具体做法是緩存已发送但未收到响应的消息, 以此消息个数作为第三组关键参数。综上,将消息反馈时延、超时 消息个数及消息队列积压长度作为关键参数。
接下来,对已获取的关键参数的决策分析成为本发明的第二个 关键问题。分发策略决策的总体思路是对每个目的端维护一个负载 指数,此指数越小表征此目的端状况越好,从而加大该目的端消息 流量。负载指数受消息反馈时延、超时消息个数及消息队列积压长 度影响,此参数反映消息积压的严重程度有所不同。为体现各参数 的综合效果,特为每种参数分配一定的权重。
当某种事件(某条消息超时、消息队列个数加一)发生时,该 目的端的负载指凄t对应增加相应4又重,当该事件消失时该目的端的 负载指凄t^f应减少相应4又重。
其中,消息队列积压长度的延迟表征能力最小,权重设为1 , 即当 一条请求消息发送到某目的端后,该目的端消息队列加入该消 息,同时该目的端负载指数加1;当收到该消息响应后,该目的端 消息队列删除该消息,同时该目的端负载指凄t减1 。
超时消息个lt的延迟表征能力最大,4又重设定为10,即当某条 消息响应超时后,该目的端负栽指凄t加10。消息超时无法自动恢复,
采取定时清零策Wg-^隔30秒清除负载指数中的超时成分。与此
类似,消息反々贵平均时延也无法自动恢复,采耳又同样策略清零。
消息反馈时延的延迟表征能力居中,权重设定为3。需要在系 统中配置时延门限(例如2秒),每隔很短时间(例如0.1秒)检测 在此时间段内平均时延是否超过门限,如果超过,则该目的端负载 指数加3,由于平均时延的不可恢复性,采取超时参数恢复的相同 才几制,即定时清零。为灵活适应不同系统,各项冲又重^直应可灵活配 置。
当^r测到目的端负荷过大时,即可认为此目的端过载,相应地 启动过载处理机制,减轻其负载。具体过程如下过载的标准需人 为判定,可采取配置方式。过载又可才艮据严重程度分为5级。例如 消息队列积压长度达到10000认为1级过载,达到20000认为2级 过载,达到50000认为5级过载;消息反馈平均时延达到2秒认为 1级过载,3秒^人为2级过载,6秒认为5级过载; 一段时间内超时 消息个数达到100认为1级过载,200认为2级过载,500认为5 级过载。三组参lt中耳又过载级别最大者作为该目的端的过载级别, 当目的端过载后,将其负载指数增加一定值,使其在短时间内由于 负载指数过高无法收到消息,从而达到减轻负荷的目的。若所有目 的端均呈过载状态,则进入降级模式,限制上游设备发送消息数量, 直到降级恢复。
应了解,过载最严重的状态即为断链,此时该目的端失去接收 消息的能力,直到链路恢复并稳定。为此需要设置心跳检测消息, 当连续若干次收不到心跳检测即认为断链,将该目的端置为"关闭" 状态,直到其链路恢复。
在实际运行中发现,在消息流量不大时,各目的端的负载指数 往往为零,即使话务量较大,负载指数相等情况时有发生。由此需 引入轮询分发机制,否则无法称为负载均衡。经过测试,此优化引 入后,负载均衡效果更为明显。
为防止负载指数越界,可定时将所有负载指数统一减少一定数 值,此优化不影响负载能力表征。
在本发明中所谓的会话,指只能由同一目的端处理的一组相关 消息,例如,通信领域中一次呼叫中的计费更新消息。在会话类消 息系统中,鉴于会话类消息的单一目的端特性,可将各目的端当前 会话个数作为第四个负载指数,权重设定为3,当新增一条会话时
负载指数加3,结束会话时负载指数减3。
图3是本发明实施例的动态反馈负载分发装置300的框图。如 图3所示,包括以下模块消息处理模块302,负责消息发送、接 收的具体实现,从决策模块获得目的端地址,从过载检测模块获取 过载处理命令,通过底层平台或操作系统的相关机制完成消息发送、 接收;关键参数采集模块304,采集并存储表征目的端处理能力的 关键数据,以备决策模块分析,其中,关键参数的选择非常重要; 决策模块306,分析若干关键参数,判断目的端的当前处理能力, 为本发明的核心模块;以及过载检测模块308,定时分析关键参数, 根据配置门限判断某目的端是否过载,过载则启动过载机制,降低 该目的端的消息流量,若所有目的端均过载则启动降级机制。
在图3中,源端作为消息来源,将消息通过上述各个模块分发 给诸目的端。而目的端作为消息的目的地,需要符合请求-响应机制, 在本发明中,同时存在多个目的端,以供分4旦负荷。
图4是在图3中所示的动态反馈负载分发装置中执行的具体消 息流程图。如图4所示,消息分发流程如下
第一步,存在两个目的端A、 B,源端开始发送消息,所有目 的端—又重均为0;
第二步,按照轮询方式发送消息给目的端A,将此消息加入緩 存队列,同时目的端A负载指数因緩存队列增加而加1,因会话数 增加而加3,负载指数为4;
第三步,收到第二条消息,A负载指数较高,消息发送给目的 端B, B的负载指凄t为4;
第四步,收到第三条消息,由于负载指数均为4,按轮询方式 消息发送给B, B的负载指数为8;
第五步, 一段时间后发送给A的消息出现超时,A的负载指数 力口 10;
第六步,上个0.1秒内B的平均处理时延超过门限2秒,B的 负载指数加3;
第七步,继续根据各自负载指数分发消息,30秒后,将负载指 数中超时和时延成分清零;
第八步,话务量增大,目的端A消息队列长度超过过载门限 10000,达到11000,消息超时个数超过超时门限100,达到278, 平均时延超过门限2秒,达到3秒,取最大值,目的端A的过载级 别为3级过载,将其负载指数增加300x3, —^殳时间内,目的端A 无法收到消息,得到休息,负载参数回落;
第九步,因同样原因目的端B与A同时过载,进入降级才莫式, 根据降级级别屏蔽源端20 %消息,并通知源端;以及 第十步,目的端A断食连,将目的端A状态关闭,目的端B独 自承担负载。
因此,才艮据若干目的端实体的处理特性,动态分析目的端处理 能力,从中选出最优处理设备,既保证通信消息高效、准确得到响 应,又保证目的端实体量力处理的请求消息。
综上所述,采用本发明的方法和装置,可以收集各目的端相关 信息,通过分析比较,实时选择当前处理能力较强的目的端作为分 发目标,较之轮询、根据IP或用户号码配置选裤^各由等静态分发方
式更为灵活、主动,适应性更强。
本发明适用于目的端为请求-响应模式的通信系统,在若干目 的端并存的情况下,通过本发明主动、动态收集目的端的关键信息, 加以分析整理,计算出当前处理能力较强的目的端,将消息发给该
端;同时分析出异常过载目的端,暂时减少其负荷。
以上〗又为本发明的优选实施例而已,并不用于限制本发明,对 于本领域的4支术人员来说,本发明可以有各种更改和变化。凡在本 发明的精神和原则之内,所作的任何修改、等同^,换、改进等,均 应包含在本发明的保护范围之内。
权利要求
1.一种动态反馈负载分发方法,用于在多个目的端与源端之间动态分发消息,其特征在于,包括以下步骤步骤一,通过关键参数采集模块收集所述多个目的端中的每个目的端的关键参数,并将所述关键参数发送至决策模块;步骤二,所述决策模块对所述关键参数进行分析,以确定所述每个目的端的处理能力;以及步骤三,当接收到来自所述源端的所述信息时,所述消息处理模块根据保存在所述消息处理模块中的关于所述每个目的端的处理能力来分发所述消息。
2. 根据权利要求1所述的方法,其特征在于,所述关4建参H是由 CPU占用率、内存占用率、和消息队列积压长度构成的组合, 或由消息队列积压长度、消息反馈时延、和超时消息个数构成 的组合。
3. 根据权利要求2所述的方法,其特征在于,当所述目的端是可 编程系统时,所述关键参数包括CPU占用率、内存占用率、 和消息队列积压长度,它们是所述目的端的本地数据,所述本地数据是通过以下方式提供给所述关键参数采集 模块的反馈机制、通信、或共享数据库。
4. 根据权利要求2所述的方法,其特征在于,当所述目的端是第 三方系统时,所述关键参数包括消息队列积压长度、消息反 馈时延、和超时消息个数。
5. 根据权利要求4所述的方法,其特征在于,在所述步骤二中, 4丸4亍以下处理所述决策模块得到所述每个目的端的一个负载指数;以及所述决策模块根据所述负载指数判断所述目的端的处理 能力。
6. 根据权利要求5所述的方法,其特征在于,所述负载指数与所 述消息队列积压长度、消息反馈时延、和超时消息个数相关联。
7. 根据权利要求6所述的方法,其特征在于,所述负载指数小,则表示所述消息队列积压长度、消息反 馈时延、或超时消息个数的延迟小,所述目的端的处理能力好。
8. 根据权利要求7所述的方法,其特征在于,与所述消息队列积压长度相关联的负载指数所表征的延 迟能力最小,与所述超时消息个数相关联的负载指数所表征的延迟能 力最大,以及与所述消息反馈时延相关联的负载指数所表征的延迟能 力居中。
9. 根据权利要求5所述的方法,其特征在于,在所述步骤二中还 4丸4亍以下处理通过一个过载4企测纟莫块确定所述目的端是否过载;当所述目的端过载时,所述过载才企测4莫块向所述决策才莫块 发送一个过载处理命令,,人而减少所述目的端的负载。
10. 4艮据权利要求9所述的方法,其特征在于,在所述步骤二中,当每个所述目的端都过载时,则所述决策模块进入降级模 式,限制所述源端发送的所述消息的数量。
11. 根据权利要求9所述的方法,其特征在于,在所述步骤二中,当所述过载检测模块判断所述每个目的端过载成断链时, 所述目的端不接收所述消息。
12. 根据权利要求1所述的方法,其特征在于,在所述步骤三中执 行以下处理所述消息处理模块接收到来自所述源端的所述消息;所述消息处理模块向所述决策模块发出取决策指令;以及所述消息处理才莫块冲艮据所述决策才莫块返回的关于所述每 个目的端的处理能力来分发所述消息。
13. —种动态反馈负载分发装置,用于在多个目的端与源端之间动 态分发消息,其特征在于,包括关键参数采集模块,用于收集所述多个目的端中的每个目 的端的关键参数,并将所述关键参数发送至决策模块;所述决策才莫块,用于对所述关4建参凄t进行分析,以确定每 个所述目的端的处理能力,并将所述处理能力发送给所述消息 处理纟莫块;以及消息处理模块,用于接收来自所述源端的所述信息,并根 据每个所述目的端的处理能力来分发所述消息。
14. 根据权利要求13所述的装置,其特征在于,还包括过载检测模块,用于分析所述关键参数,并根据所述关键 参凄t配置门限来确定所述目的端是否过栽。
15. 根据权利要求13所述的装置,其特征在于,所述过载检测模 块还用于当所述目的端过载时,启动过载才几制,降^氐所述目的 端的所述消息的数量,并且当每个所述目的端都过载时,启动 降《及一几制。
16. 根据权利要求13所述的装置,其特征在于,所述关键参数是 由CPU占用率、内存占用率、和消息队列积压长度构成的组 合,或由消息队列积压长度、消息反馈时延、和超时消息个数 构成的组合。
全文摘要
本发明提供了一种动态反馈负载分发方法和装置,其中,该方法包括以下步骤步骤一,通过关键参数采集模块收集多个目的端中的每个目的端的关键参数,并将关键参数发送至决策模块;步骤二,决策模块对关键参数进行分析,以确定每个目的端的处理能力;以及步骤三,当接收到来自源端的信息时,消息处理模块根据保存在消息处理模块中的关于每个目的端的处理能力来分发消息。因此,采用本发明,可以收集各目的端相关信息,通过分析比较,实时选择当前处理能力较强的目的端作为分发目标,较之轮询、根据IP或用户号码配置选择路由等静态分发方式更为灵活、主动,适应性更强。
文档编号H04L12/24GK101174986SQ20071016625
公开日2008年5月7日 申请日期2007年11月7日 优先权日2007年11月7日
发明者强 刘 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1