一种基于动态概率模型的负载均衡方法、装置和系统与流程

文档序号:18211548发布日期:2019-07-19 22:20阅读:186来源:国知局
一种基于动态概率模型的负载均衡方法、装置和系统与流程

本发明涉及分布式服务技术领域,尤其涉及一种基于动态概率模型的负载均衡方法、装置和系统。



背景技术:

分布式服务部署当前已经被广泛使用,比如当前热门的微服务架构,在实际生产中一个服务通常会有多个实际运行的服务器,而当用户真正调用某一个服务时,这一任务具体该被分发到哪一个服务节点实体就属于负载均衡的范畴。常用的负载均衡方法包括轮询、最少连接数、最快响应时间、优先权重、源信息哈希等,它们依赖各服务器节点状态信息或者申请者的源信息来判决此次服务的归属节点。而上述策略中,轮询策略均衡性效果差,其他策略均存在瞬时峰值的问题;瞬时峰值主要由于瞬时状态依赖以及硬判决导致,其中瞬时状态依赖是由于服务节点的负载信息(比如连接数、响应时间)并不能被瞬时感知,而是必须依赖于服务节点周期性的消息交互来获取,在服务器并发程度高、瞬时访问量巨大,因为状态信息无法瞬时更新,依赖这些状态信息的负载策略会导致大批量用户可能瞬时内分配到同一个节点,造成瞬间峰值;硬判决由于每次只会选择某一策略下的最优节点,而忽略了次优节点,造成了有效信息的丢失。

现有负载均衡方法因为瞬时状态依赖性和硬判决的缺点,在实际应用中存在瞬时峰值的问题,而在一些瞬时业务极高的场景,比如“秒杀”场景、抢票场景中尤为突出,服务器节点的瞬间极大访问峰值可能直接造成节点瘫痪,进而严重影响服务质量。



技术实现要素:

基于背景技术存在的技术问题,本发明提出了一种基于动态概率模型的负载均衡方法、装置和系统。

本发明提出的一种基于动态概率模型的负载均衡方法,包括以下步骤:

s1、周期性获取所有服务节点的状态信息;

s2、根据服务节点的状态信息对服务节点进行评分,获取与各服务节点对应的评分值;

s3、根据各服务节点的评分值计算对应的命中概率;

s4、根据命中概率将区间(0,1]划分为与各服务节点对应的命中区间;

s5、根据服务请求,在区间(0,1]范围内生成均匀分布随机数作为服务请求对应的投射值;

s6、获取投射值所在命中区间对应的服务节点作为本次服务请求的负载节点。

优选的,步骤s1中,通过心跳机制周期性获取所有服务节点的状态信息,各服务节点的状态信息由所述服务节点上传的心跳包携带。

优选的,步骤s2具体为:根据状态信息对服务节点进行筛选,对连接状态正常的服务节点的状态信息进行量化和归一化,并加权评分获取与各服务节点对应的评分值;

优选的,步骤s1中获取的服务节点的状态信息包括:连接数、响应时间和优先级。

优选的,步骤s2中,对连接数和优先级进行线性归一化处理,并对响应时间进行非线性归一化处理;

优选的,步骤s2中,连接数和优先级的归一化模型如下:

其中,cmax为预定义的最大连接数,pmax为预定义的最大权重;

优选的,步骤s2中,响应时间的归一化模型如下:

其中,rmax为预定义的最大响应时间,kscale为量化的时间间隔尺度,

优选的,步骤s2中对服务节点的评分模型为:wi=wc×c′i+wr×r′i+wp×p′i,其中,wc为预设的连接数权重,wr为预设的响应时间权重,wp为预设的优先级权重,c′i、r′i和pi′分别为ci、ri和pi归一化值,ci、ri和pi分别为第i个服务节点的连接数、响应时间和优先级,wi为第i个服务节点的评分值。

优选的,步骤s3中,根据各服务节点的评分值计算对应的命中概率的计算模型为:

其中,qi为第i个服务器的命中概率,wi为第i个服务节点的评分值,n为服务节点的总数,e为自然常数。

优选的,步骤s5中,采用均匀分布模板生成均匀分布随机数作为投射值。

一种基于动态概率模型的负载均衡装置,包括:

第一信号接收模块,用于实时接收各服务节点的状态信息;

命中区间划分模块,与第一信号接收模块连接,用于根据状态信息赋予各服务节点一个评分值,根据评分值计算各服务节点的命中概率,并用于根据命中概率在区间(0,1]上划分各服务节点的命中区间;

第二信号接收模块,用于接收客户端发送的服务请求;

服务节点匹配模块,分别连接命中区间划分模块和第二信号接收模块,用于在第二信号接收模块接收到服务请求时,对应所述服务请求随机生成一个(0,1]范围内的投射值,并用于获取所述投射值所在的命中区间对应的服务节点作为本次服务请求对的负载节点。

优选的,各服务节点通过心跳机制向第一信号接收模块上传状态信息,状态信息由心跳包携带。

优选的,第一信号接收模块用于接收各服务节点通过心跳机制上传的由心跳包携带的状态信息;

优选的,命中区间划分模块用于根据状态信息赋予各服务节点一个评分值的计算模型为:wi=wc×c′i+wr×r′i+wp×pi′,其中,wc为预设的连接数权重,wr为预设的响应时间权重,wp为预设的优先级权重,c′i、r′i和pi′分别为ci、ri和pi归一化值,ci、ri和pi分别为第i个服务节点的连接数、响应时间和优先级,wi为第i个服务节点的评分值;

优选的,连接数和优先级的归一化模型如下:

其中,cmax为预定义的最大连接数,pmax为预定义的最大权重;

优选的,响应时间的归一化模型如下:

其中,rmax为预定义的最大响应时间,kscale为量化的时间间隔尺度,

优选的,命中区间划分模块根据评分值计算各服务节点的命中概率的计算模型为:其中,qi为第i个服务器的命中概率,n为服务节点的总数,e为自然常数;

优选的,命中区间划分模块用于根据命中概率在区间(0,1]上划分各服务节点的命中区间的计算模型为:

其中,ai为第i个服务节点的命中区间,n为服务节点总数。

一种基于动态概率模型的负载均衡系统,包括如权利要求9所述的负载均衡装置,还包括多个与负载均衡装置有线连接或者无线连接的作为服务节点的服务器。

本发明中,通过结合状态信息对各服务节点进行评分,使得最终获取的命中概率与各服务节点的优异性成正比,使得在进行负载节点的选择中,优异的服务节点更容易被选中。同时,根据投射值和命中区间选择负载服务器,由于投射值的生成具有随机性,使得优异性靠后的服务节点也有被命中的可能,使得次优节点也能得到有效利用。如此,本发明中,负载节点的选择不需要完全依赖服务器的瞬时状态,能有效避免瞬间峰值问题,使所有节点负载平滑。

可见,本发明提出的一种基于动态概率模型的负载均衡方法,不需要完全依赖服务器的瞬时状态,并且能有效地利用次优节点的信息,能有效优化高并发下节点访问的峰值问题,避免硬判决,使各服务节点的负载变得均衡而平滑。

附图说明

图1为本发明提出的一种基于动态概率模型的负载均衡方法流程图;

图2为本发明提出的一种基于动态概率模型的负载均衡系统示意图。

具体实施方式

参照图1,本发明提出的一种基于动态概率模型的负载均衡方法,包括以下步骤。

s1、周期性获取所有服务节点的状态信息。具体的,本实施方式中,各服务节点通过心跳机制有心跳包携带其状态信息周期性上传更新。

具体实施时,本步骤中获取的服务节点的状态信息包括:连接数、响应时间和优先级。

s2、根据服务节点的状态信息对服务节点进行评分,获取与各服务节点对应的评分值。

本实施方式中,评分值的计算方法根据获取的状态信息进行设置,最终获取的评分值应与对应的服务节点作为负载节点的优异性成正比。即,某个服务节点在作为服务请求的负载节点能使所有服务节点更加均衡平滑,则该服务节点对应的评分值更高。

具体的,本步骤中,首先对各服务节点的状态信息进行量化和归一化,再加权评分获取与各服务节点对应的评分值。对服务节点进行量化和归一化,方便了各状态信息的量值,并有利于提高计算效率。

具体实施时,本步骤中,在进行评分前,需要对服务节点进行筛选,以剔除连接状态不正常的服务节点,以保证服务请求的正常响应。即,本实施方式中,步骤s2具体为:根据状态信息对服务节点进行筛选,对连接状态正常的服务节点的状态信息进行量化和归一化,并加权评分获取与各服务节点对应的评分值。

s3、根据各服务节点的评分值计算对应的命中概率。具体的,本实施方式中,其中,qi为第i个服务器的命中概率,wi为第i个服务节点的评分值,n为服务节点的总数,e为自然常数。

本实施方式中,步骤s2中对服务节点进行筛选,n实际为筛选出的连接状态正常的服务节点即进行评分的服务节点的总数,具体实施时,命中概率也可根据公式进行计算。

s4、根据命中概率将区间(0,1]划分为与各服务节点对应的命中区间。具体的,命中区间的划分通过模型描述如下:

其中,ai为第i个服务节点的命中区间,qi为第i个服务节点的命中概率,n为服务节点总数。

本实施方式中,各服务节点的命中概率分布根据各服务节点的状态信息的更新而动态更新。

s5、根据服务请求,在区间(0,1]范围内生成均匀分布随机数作为服务请求对应的投射值。具体的,本步骤中,采用均匀分布模板生成均匀分布随机数作为投射值。

s6、获取投射值所在命中区间对应的服务节点作为本次服务请求的负载节点。

本实施方式中,通过结合状态信息对各服务节点进行评分,使得最终获取的命中概率与各服务节点的优异性成正比,使得在进行负载节点的选择中,优异的服务节点更容易被选中。同时,根据投射值和命中区间选择负载服务器,由于投射值的生成具有随机性,使得优异性靠后的服务节点也有被命中的可能,使得次优节点也能得到有效利用。如此,负载节点的选择不需要完全依赖服务器的瞬时状态,能有效避免瞬间峰值问题,使所有节点负载平滑。

以下结合一个具体的实施例对上述方法做进一步说明。

本实施中,采集的服务节点的状态信息包括:连接数、响应时间和优先级。

本实施例的步骤s2中,对连接数和优先级进行线性归一化处理,并对响应时间进行非线性归一化处理。

具体的,本实施例中,连接数和优先级的归一化模型如下:

其中,cmax为预定义的最大连接数,pmax为预定义的最大权重。

响应时间的归一化模型如下:

其中,rmax为预定义的最大响应时间,kscale为量化的时间间隔尺度,

根据响应时间的归一化模型可知,当ri<rmax,r′i与ri呈正比;当ri>rmax,r′i为恒定值。

本实施例的步骤s2中对服务节点的评分模型为:wi=wc×c′i+wr×r′i+wp×pi′,其中,wc为预设的连接数权重,wr为预设的响应时间权重,wp为预设的优先级权重,c′i、r′i和pi′分别为ci、ri和pi归一化值,ci、ri和pi分别为第i个服务节点的连接数、响应时间和优先级,wi为第i个服务节点的评分值。

本实施例中,假设当前有四个服务器即四个服务节点,各服务节点的命中概率为:[q1,q2,q3,q4]=[0.1,0.1,0.5,0.3],则可获得四个服务节点的命中区间分别为:a1=(0,0.1],a2=(0.1,0.2],a3=(0.2,0.7],a4=(0.7,1]。

此时收到服务请求,则生成一个均匀分布随机数,具体的,均匀分布随机数可通过均匀分布模板类std::uniform_real_distribution生成。假设,生成的均匀分布随机数为0.6,则命中区间a3,则将第三个服务器作为负载服务器对服务请求进行相应。再假设,生成的均匀分布随机数为0.1,则命中区间a1,则将第一个服务器作为负载服务器对服务请求进行相应。

本发明提供的一种基于动态概率模型的负载均衡装置,包括:第一信号接收模块、命中区间划分模块、第二信号接收模块和服务节点匹配模块。

第一信号接收模块,用于实时接收各服务节点的状态信息。具体的,服务节点为各与负载均衡装置连接的服务器。

本实施方式中,第一信号接收模块接收的各服务节点的状态信息包括连接数、响应时间和优先级。具体实施时,各服务节点通过心跳机制向第一信号接收模块上传状态信息,状态信息由心跳包携带。

命中区间划分模块,与第一信号接收模块连接,用于根据状态信息赋予各服务节点一个评分值,根据评分值计算各服务节点的命中概率,并用于根据命中概率在区间(0,1]上划分各服务节点的命中区间。

具体的,本实施方式中,可通过状态信息中的各参数加权平均获取与各服务节点对应的评分值,然后根据评分值为各服务节点分配命中概率,再根据命中概率分配命中区间。

如本实施方式中,可根据以下模型划分命中区间:

其中,wi为第i个服务节点的评分值,wc为预设的连接数权重,wr为预设的响应时间权重,wp为预设的优先级权重,c′i、r′i和pi′分别与ci、ri和pi相关,ci、ri和pi分别为第i个服务节点的连接数、响应时间和优先级;ai为第i个服务节点的命中区间,qi为第i个服务节点的命中概率,n为服务节点总数。

具体实施时,评分值wi和命中概率qi的计算也可采用其他模型,例如

具体的,本实施方式中,可取c′i=ci、r′i=ri和pi′=pi;也可设置c′i、r′i和pi′分别为ci、ri和pi归一化值,归一化模型具体如下:

其中,cmax为预定义的最大连接数,pmax为预定义的最大权重;rmax为预定义的最大响应时间,kscale为量化的时间间隔尺度,

第二信号接收模块,用于接收客户端发送的服务请求。

具体实施时,可将第二信号接收模块与第一信号接收模块集合为一个信号处理模块。

服务节点匹配模块,分别连接命中区间划分模块和第二信号接收模块,用于在第二信号接收模块接收到服务请求时,对应所述服务请求随机生成一个(0,1]范围内的投射值,并用于获取所述投射值所在的命中区间对应的服务节点作为本次服务请求对的负载节点。

即,本实施方式中,当k∈ai,则将命中区间为ai的服务器分配给投射值k对应的服务请求作为负载节点。

具体参照图2,本实施方式中还提供了一种基于动态概率模型的负载均衡系统,包括负载均衡装置t100和多个与负载均衡装置有线连接或者无线连接的作为服务节点的服务器t1、t2、……tn-1、tn。该系统中采用的负载均衡装置为本实施方式中提供的基于动态概率模型的负载均衡装置。

该系统中,负载均衡装置t100给各服务器t1、t2、……tn-1、tn分配的命中区间分别为:

t1:a1=(0,q1]

t2:a2=(q1,q1+q2]

……

tn-1:an-1=(q1+q2+…+qn-2,q1+q2+…+qn-2+qn-1]

tn:an=(q1+q2+…+qn-2+qn-1,1]

假设负载均衡装置t100在获取到服务请求时生成的均匀分布随机数即投射值为s,且q1+q2+…+qn-2≤s≤q1+q2+…+qn-2+qn-1,则投射值s位于服务器tn-1所在的命中区间an-1上,则将服务器tn-1作为该服务请求的负载节点。

以上所述,仅为本发明涉及的较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

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