一种负载均衡服务池加权轮询均衡选择节点的方法与流程



1.本发明涉及通信技术领域,具体是指一种负载均衡服务池加权轮询均衡选择节点的方法。


背景技术:



2.负载均衡系统应用在高效网络基础架构里,用于将需要处理的工作实时有效地负载到分布在网络里的服务节点上,负载均衡系统如何将请求分配到合适的服务节点是系统核心技术。
3.负载均衡节点分配算法是负载均衡系统的核心组成,有轮询、最少连接选择、最快响应选择、源ip哈希等。其中轮询算法最基本和最常用的算法,加权轮询是轮询算法的扩展算法,随着网路服务不断升级,服务节点不断升级更新,新旧服务节点同时运作,导致各个节点服务能力不一致,这需要调整负载均衡轮询选择节点的权值来最大使用服务节点资源,在加权轮询算法广泛使用中,工程师们不断优化和改进算法。
4.现有的加权轮询算法能精确的把服务按比例分配给网络中的服务节点,最常见的两种算法是普通加权和精确加权。普通加权算法如下,比如有n个节点,各个节点的权值为q1q2……qn
普通加权就是依次把服务按照权值发给节点服务,比如,将q1个服务发给节点1,将q2个服务发给节点2,依次将服务分发给服务节点。精确加权是每一个周期要分发个服务,轮询n个服务节点,每个节点分发一个服务,直到所有节点的权值使用完毕。
5.现有的加权轮询算法能精确的把服务按比例分配给网络中的服务节点,但是最常用的普通加权和精确加权算法对于其中的一个服务节点来说,收到的服务请求不是均匀到达的。例如普通加权对于服务节点1,该服务节点收到连续收到q1个服务请求,之后会等待很长时间才能收到下一个周期发来的q1个服务请求,精确加权算法比普通加权算法更能均衡的把服务请求分发给服务节点,但是在权值相差很大的情况下,还是会出现服务节点收到的服务请求不是均速到达的情况,例如,如果权值q1是40,q2是3,那么当服务节点1和服务节点2都接收3个服务请求后,务节点1会连续接收后续服务请求,而服务节点2等到当前轮询周期结束开始下一周期轮询时才能收到服务请求。
6.所以,一种负载均衡服务池加权轮询均衡选择节点的方法成为人们亟待解决的问题。


技术实现要素:



7.本发明的目的是针对现有的加权轮询算法不能把的服务请求均匀分发给各个服务节点的缺点,提供一种负载均衡服务池加权轮询均衡选择节点的方法,该方法通过在一个轮询周期内对所有服务节点,根据所占权重比例,对某一个服务节点实施等时间间隔分发服务请求,最终使得服务节点能匀速收到服务请求。
8.为实现上述目的,本发明提供的技术方案为:一种负载均衡服务池加权轮询均衡
选择节点的方法,包括以下步骤,
9.步骤1、分发服务队列计算流程
10.累计一个服务池各个服务节点配置的权值和位其中q为一个服务节点的权值,n为节点数量,m为一个分发周期要分发的服务请求个数;
11.步骤2、计算每一个服务节点在m长的分发队列里的分发位置,计算如下:
12.m除以权值q,如果能够整除,那么将m长的分发队列每隔m/q-1位置标识一个分发点,如果m除以权值q有不是0的余数b,那么将m长的分发队列每隔m/q位置标识一个分发点,q赋值位b,再按上述步骤把权值为b的服务节点分配到m长的分发队列,这样一共可以产生k个队列;
13.步骤3、将步骤2中产生的k个队列合并成一个总的分发服务队列;
14.步骤4、分发服务执行流程
15.负载均衡系统接收到服务请求,循环以次读取分发服务队里,取出节点标识,分发服务到指定服务节点。
16.本发明与现有技术相比的优点在于:本发明通过在一个轮询周期内对所有服务节点,根据所占权重比例,对某一个服务节点实施等时间间隔分发服务请求,最终使得服务节点能匀速收到服务请求。同时通过对其中一个服务节点均匀分发服务请求减小了服务响应延时,避免了单个服务节点处理压力瞬间增大或相对空闲。
附图说明
17.图1是加权轮询均衡分发图。
18.图2是加权轮询服务节点分发服务位置计算图。
具体实施方式
19.下面结合附图对本发明一种负载均衡服务池加权轮询均衡选择节点的方法做进一步的详细说明。
20.本发明一种负载均衡服务池加权轮询均衡选择节点的方法的具体实施过程如下:
21.步骤1、加权轮询均衡分发
22.每个服务节点的分配的权值不同,在一个分发服务周期内要求各个服务节点被分发的服务请求数严格按照权重比例,设定各个节点的权值为q1q2……qn
,则一个服务分发周期内分发个服务请求,在这个周期内要求分发给每个服务节点的服务是等间隔,即满足每个节点均匀收到服务请求;
23.例如,有3个服务节点,权值比例是1:2:3,那么如果每6个服务请求发一个给服务节点1,每3个服务请求发一个给服务节点2,每2个服务请求发一个给服务节点3,这样就满足每个节点均匀收到服务请求。
24.步骤2、
25.(1)加权轮询均衡分发
26.结合附图1,一个分发周期的分发服务对列长度为我们用m表示,各个服务节点计算出在m长度的队列里的位置,然后各个服务节点依次插入分发服务队列。
27.(2)加权轮询服务节点分发服务位置计算
28.结合附图2,设定一个分发周期要分发m个服务请求,一个服务节点的权值为q,则将这q个服务请求均匀的分布在m个位置上;设定a=m/q,
29.若m%q为0,则对于权值为q的服务节点,每隔a-1分发的一个请求服务;
30.若m/q余数为b,b》0,则每隔a分发一个请求服务;
31.故服务节点可以分发m/(a+1)服务请求,这m/(a+1)的服务请求均匀分布在m个位置这个队列设为t1,然后将剩余的q-m/(a+1)服务请求再按上述方法计算安排在m个队列位置中,依次类推,会有k个队列t1t2……
tk;将这k个队列合并就形成一个该权值为q的服务节点的发送位置队列;
32.每个加权的服务节点计算一个分发队列,再将这n个服务节点合并成一个分发服务队列。
33.步骤3、分发服务执行流程
34.负载均衡系统接受到服务请求,循环以次读取分发服务队里,取出节点标识,分发服务到指定服务节点。
35.以上对本发明及其实施方式进行了描述,这种描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。


技术特征:


1.一种负载均衡服务池加权轮询均衡选择节点的方法,其特征在于:包括以下步骤,步骤1、分发服务队列计算流程累计一个服务池各个服务节点配置的权值和位其中q为一个服务节点的权值,n为节点数量,m为一个分发周期要分发的服务请求个数;步骤2、计算每一个服务节点在m长的分发队列里的分发位置,计算如下:m除以权值q,如果能够整除,那么将m长的分发队列每隔m/q-1位置标识一个分发点,如果m除以权值q有不是0的余数b,那么将m长的分发队列每隔m/q位置标识一个分发点,q赋值位b,再按上述步骤把权值为b的服务节点分配到m长的分发队列,这样一共可以产生k个队列;步骤3、将步骤2中产生的k个队列合并成一个总的分发服务队列;步骤4、分发服务执行流程负载均衡系统接收到服务请求,循环以次读取分发服务队里,取出节点标识,分发服务到指定服务节点。2.根据权利要求1所述的一种负载均衡服务池加权轮询均衡选择节点的方法,其特征在于:所述步骤1中每个服务节点的分配的权值不同,在一个分发服务周期内要求各个服务节点被分发的服务请求数严格按照权重比例,设定各个节点的权值为q1q2……
q
n
,则一个服务分发周期内分发个服务请求,在这个周期内要求分发给每个服务节点的服务是等间隔,即满足每个节点均匀收到服务请求。

技术总结


本发明公开了一种负载均衡服务池加权轮询均衡选择节点的方法,分发服务队列计算流程,计算每一个服务节点在M长的分发队列里的分发位置,将产生的各个队列合并成一个总的分发服务队列;负载均衡系统接收到服务请求,循环以次读取分发服务队里,取出节点标识,分发服务到指定服务节点。本发明通过在一个轮询周期内对所有服务节点,根据所占权重比例,对某一个服务节点实施等时间间隔分发服务请求,最终使得服务节点能匀速收到服务请求。同时通过对其中一个服务节点均匀分发服务请求减小了服务响应延时,避免了单个服务节点处理压力瞬间增大或相对空闲。间增大或相对空闲。间增大或相对空闲。


技术研发人员:

靳龙

受保护的技术使用者:

上海弘积信息科技有限公司

技术研发日:

2022.08.25

技术公布日:

2022/12/5

本文发布于:2024-09-22 12:41:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/34504.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   队列   负载均衡   周期
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议