负载均衡方法及装置制造方法及图纸

技术编号:16458038 阅读:35 留言:0更新日期:2017-10-25 22:40
本发明专利技术公开了一种负载均衡方法及装置,其中,方法包括:循环执行下述步骤,直到确定整体处理吞吐量满足预设均衡条件;根据各个服务器的当前处理权值,确定向各个服务器分发的当前负载流量;将所确定的当前负载流量分发给各个服务器;采集各个服务器的当前实时处理压力参数;根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;在确定出整体处理吞吐量未满足预设均衡条件时,调整各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。本发明专利技术实施例技术方案解决了在目前的网络或机器环境下,不能将整体的后端处理集群发挥至最佳状态,甚至导致部分机器负载过高的问题。

Load balancing method and device

The invention discloses a method and device for load balancing, which executes the following steps: the method to determine the overall throughput, until meet preset equilibrium conditions; according to the current processing weights for each server, the load flow to determine the distribution of each server; the load flow distribution to each server will be determined by the current time; the processing pressure parameter acquisition for each server; according to the real-time processing of pressure parameters for each server to collect, to determine the overall throughput of whether or not to meet the preset equilibrium conditions; in determining the overall throughput does not meet the preset equilibrium conditions, with weight adjustment for each server, and each server will handle weights adjusted, as the weights of the next cycle. The technical scheme of the embodiment of the invention solves the problem that the whole back-end processing cluster can not reach the optimum state even under the current network or machine environment, and even leads to the excessive load of some machines.

【技术实现步骤摘要】
负载均衡方法及装置
本专利技术涉及云计算技术,尤其涉及一种负载均衡方法及装置。
技术介绍
负载均衡问题在分布式服务中一直是一项热门的关注点,目前常见的负载均衡算法有随机与轮询算法。目前百度云日流量已在百亿级,并且不断在增长。百度云的流量在经过域名解析之后会通过一级反向代理进入百度云的自有接入层(二级反向代理),通过百度云接入层的流量根据请求分布代理到后端的相应处理集群。在请求处理过程中涉及到的机器、集群、机房较多,后端服务可能存在着各种混布,服务之间会相互影响;同时存在机器性能不一,机房网络情况差异等问题,导致后端处理层各机器负载不均衡以及同一接口处理延时差异较大等情况,如果负载均衡策略采用简单的随机或轮询,在目前百度云的网络或机器环境下,并不能将整体的后端处理集群发挥至最佳状态,甚至容易导致部分机器负载过高。
技术实现思路
有鉴于此,本专利技术实施例提供一种负载均衡方法及装置,以解决现有技术中的在目前的网络或机器环境下,不能将整体的后端处理集群发挥至最佳状态,甚至容易导致部分机器负载过高的问题。第一方面,本专利技术实施例提供了一种负载均衡方法,包括:循环执行下述步骤,直到确定整体处理吞吐量满足预设均衡条件;根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;将所确定的当前负载流量分发给所述各个服务器;采集所述各个服务器的当前实时处理压力参数;根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。第二方面,本专利技术实施例提供了一种负载均衡装置,包括:循环执行模块,用于循环触发执行下述各模块,直到确定整体处理吞吐量满足预设均衡条件;流量计算模块,用于根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;流量发送模块,用于将所确定的当前负载流量分发给所述各个服务器;压力参数采集模块,用于采集所述各个服务器的当前实时处理压力参数;均衡判断模块,用于根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;权值调整模块,用于在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。本专利技术实施例提供的负载均衡方法及装置,通过对网络后端处理集群的负载均衡策略进行优化,实时地对后端的处理器的处理权值进行调整,并实时地按调整后的处理权值分配请求信息,将请求信息更为及时、自动地送到后端处理延时时间最短的处理器,减少将请求信息转向处理较慢的机器,直至各机器之间处理延时相对均衡。在本专利技术实施例所述方案的调度下,处理层的处理器被分配的请求信息虽然不是均衡的,但机器的机器压力是相对均衡的,使整个处理层的整体处理能力得到更好的提升。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术实施例一提供的一种负载均衡方法的流程图;图2为本专利技术实施例一适用的一种权重轮询算法的逻辑实现示意图;图3为本专利技术实施例一适用的另一种权重轮询算法的逻辑实现示意图;图4为本专利技术实施例二提供的一种负载均衡方法的流程图;图5为本专利技术实施例四提供的一种负载均衡装置的结构图;图6为本专利技术实施例四提供的另一种负载均衡装置的结构图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。实施例一图1为本专利技术实施例一提供的一种负载均衡方法的流程图。本实施例的方法可由负载均衡装置来执行,所述装置可通过软件和/或硬件的方式实现,并一般可集成于负载均衡控制器中。如图1所示,本实施例提供的负载均衡方法包括:S110、根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量。网络的服务器有前端服务器和后端服务器。前端服务器一般与客户端等交互,负责请求信息的接收和分配。相对而言,后端服务器负责请求信息的处理。后端服务器相对的需要大量的运算内存,若其直接处理请求信息,则对请求信息的响应要求不高,所以前端服务器负责缓冲请求信息,然后向后端服务器再请求处理,后端处理完响应后再响应返回,分开处理。例如,百度云的请求信息会先通过一级反向代理进入百度云的自有接入层(二级反向代理),这里的一级反向代理和二级反向代理的作用即为前端服务器,将请求信息分配到百度云后端服务器。这里的反向代理也相当于本实施例中的负载均衡控制器,负载均衡控制器可以完成对后端服务器处理请求信息数的检测、处理权值的计算与设置和按照所设置的处理权值将请求信息进行分配。在本实施例中,所述服务器具体是指后端服务器。对于网络后端服务器的负载均衡算法常见的有随机、轮询等算法。随机算法为随机的把请求信息分配到各个可用的服务器上,通过随机数生成算法选取一个服务器,然后把请求信息发送给该服务器。此种算法不能有效、及时地处理请求信息。轮询算法按顺序把每个新的请求信息分配给下一个服务器,最终把所有请求信息平分给所有的服务器。轮询算法在大多数情况下都工作的不错,但是如果负载均衡的设备在处理速度、连接速度和内存等方面不是完全均等,就会影响请求信息处理的速度。轮询算法的优点是其简洁性,它无需记录当前所有请求信息的状态,所以它是一种无状态调度。当请求信息服务的间隔时间变化比较大时,轮询算法容易导致服务器间的负载不平衡。所以此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求信息相对均衡的情况。处理权值是指加权平均数中的每个数的频数,也称为权数或权重。在本实施例中,处理权值即为服务器被分配的请求信息占整体请求信息的比例。现有算法中,在轮询算法的基础上,根据服务器的不同处理能力,给每个服务器分配不同的处理权值,使其能够接受相应处理权值的请求信息,叫做权重轮询算法。例如,参考图2和3,图2为本专利技术实施例一适用的一种权重轮询算法的逻辑实现示意图,图3为本专利技术实施例一适用的另一种权重轮询算法的逻辑实现示意图。图2中,有6个请求信息从客户端发出,经过路由器和负载均衡控制器发送至后端三个服务器A、B和C中。处理权值设置为1:1:1,所以当请求信息1、2和3依次被分配到三个服务器中后,剩下的三个请求信息继续依次被分配。图3中,假设有10个请求信息从客户端发出,后端服务器还是有3个,处理权值设置为3:1:1。请求信息1、2和3分别依次被分配到三个后端服务器中,请求信息4本文档来自技高网...
负载均衡方法及装置

【技术保护点】
一种负载均衡方法,其特征在于,包括:循环执行下述步骤,直到确定整体处理吞吐量满足预设均衡条件;根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;将所确定的当前负载流量分发给所述各个服务器;采集所述各个服务器的当前实时处理压力参数;根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。

【技术特征摘要】
1.一种负载均衡方法,其特征在于,包括:循环执行下述步骤,直到确定整体处理吞吐量满足预设均衡条件;根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;将所确定的当前负载流量分发给所述各个服务器;采集所述各个服务器的当前实时处理压力参数;根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。2.根据权利要求1所述的方法,其特征在于,在执行循环操作之前,所述方法还包括:对所述各个服务器的处理权值进行初始化。3.根据权利要求1所述的方法,其特征在于,所述服务器的实时处理压力参数至少包括下述一项:平均处理延时时间、每秒查询率和异常事件发生概率;其中,所述异常事件包括:未响应事件,和/或差错事件。4.根据权利要求3所述的方法,其特征在于,所述在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值包括:根据所述各个服务器的实时处理压力参数以及所有服务器的实时处理压力参数,计算所述各个服务器的权值增量;将所计算出的权值增量与所述各个服务器的当前权值相加,作为调整后的权值。5.根据权利要求4所述的方法,其特征在于,所采集的各个服务器的实时处理压力参数包括实时处理压力参数集{Ti,Qi,Pi},i∈[1,N];其中,Ti为第i个服务器的平均处理延时时间、Qi为第i个服务器的每秒查询率、Pi为第i个服务器的异常事件发生概率、N为服务器的总数量,且N为大于1的整数;所述根据所述各个服务器的实时处理压力参数以及所有服务器的实时处理压力参数,计算所述各个服务器的权值增量包括:根据所述采集到的各个服务器的实时处理压力参数集{Ti,Qi,Pi},计算平均实时处理压力参数集{Tave,Qave,Pave};根据公式:ΔDj=K1(Tave-Ti)+K2(Qi-Qave)+K3(Pave-Pi);计算各个服务器的权值增量ΔDj,j∈[1,N],其中,K1、K2、K3为设定比例系数。6.根据权利要求5所述的方法,其特征在于,根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件包括:分别计算各个服务器的Ti与所述Tave之间的差值ΔTi;如果与各个服务器对应的ΔTi均位于设定误差范围内,则确定整体处理吞吐量满足预设均衡条件。7.根据权利要求2所述的方法,其特征在于,对至少两个服务器的处理权值进行初始化,具体包括:根据所述服务器的处理性能参数的差异值,为至少两个服务器的处理权值进行初始化;其中,所述处理性能参数包括:服务器的中央处理器CPU运算速度...

【专利技术属性】
技术研发人员:林晓刚高巍范利平
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1