一种基于动态反馈的Nginx负载均衡方法技术

技术编号:21033793 阅读:48 留言:0更新日期:2019-05-04 05:15
本发明专利技术公开了一种基于动态反馈的Nginx负载均衡方法,包括:定时获取各服务器的负载信息和各服务器最近一次的响应时间;根据所述的负载信息计算出当前节点的剩余负载权值;根据所述各服务器最近一次的响应时间计算出平均时间;通过最近一次的响应时间与所述平均响应时间相比,得出该节点响应时间比率,再将所述响应时间比率与默认权值进行响应计算,得到响应时间权值;将计算得到的所述剩余负载权值和所述响应时间权值相加得到实际权值;根据所述实际权值为服务器分配相应的负载;本发明专利技术解决负载权重值不会随着服务器的运行情况而改变的技术问题,从而实现缩短服务器的响应时间和提高服务效率。

A Nginx Load Balancing Method Based on Dynamic Feedback

【技术实现步骤摘要】
一种基于动态反馈的Nginx负载均衡方法
本专利技术涉及服务器负载分配
,尤其涉及一种基于动态反馈的Nginx负载均衡方法。
技术介绍
Nginx服务器一般被用于并发访问量很大的应用场景,当访问请求数量逐渐增大时,如果各个服务器的实际性能情况不能够满足当前分配的请求任务,那么就会出现响应时间过长,服务效率低等问题;服务器的性能受多个指标影响,包括CPU、磁盘、网络等。Nginx可以为每台服务器设置初始权重值,而这个权重值并不会随着服务器的运行情况而改变,如果某台服务器发生异常并且Nginx继续按照既定的权重值分配任务,那么就会出现响应时间长、服务效率低的问题。
技术实现思路
本专利技术提供了一种基于动态反馈的Nginx负载均衡方法,以解决负载权重值不会随着服务器的运行情况而改变的技术问题,从而根据服务器的运行情况改变相应的权重值进行分配任务,进而实现缩短服务器的响应时间和提高服务效率。为了解决上述技术问题,本专利技术实施例提供了一种基于动态反馈的Nginx负载均衡方法,包括:定时获取各服务器的负载信息和各服务器最近一次的响应时间;根据所述的负载信息计算出当前节点的剩余负载权值;根据所述各服务器最近一次的响应时间计算出平均时间;通过最近一次的响应时间与所述平均响应时间相比,得出该节点响应时间比率,再将所述响应时间比率与默认权值进行响应计算,得到响应时间权值;将计算得到的所述剩余负载权值和所述响应时间权值相加得到实际权值;根据所述实际权值为服务器分配相应的负载。作为优选方案,所述负载信息包括CPU使用率、内存使用率、磁盘I/O使用率以及网络带宽的占用率。作为优选方案,在所述通过最近一次的响应时间与所述平均响应时间相比,得出该节点响应时间比率,再将所述响应时间比率与默认权值进行响应计算,得到响应时间权值之前,还包括:对服务器列表进行轮询,判断当前服务器是否可用;若否,则进行选择下一个服务器;若是,则对当前服务器的最后一次响应时间与所述平均时间进行比对。作为优选方案,所述根据所述实际权值为服务器分配相应的负载,具体包括:判断当前服务器的所述实际权值是否大于已选最优服务器权值,若是,则将当前服务器暂时列为最优服务器;判断是否对服务器列表完成遍历,若否,则继续对服务器列表进行轮询;若是,则选择最优服务器处理。作为优选方案,所述计算当前节点的剩余负载权值,具体为:其中,指代剩余负载权值;U(Ci)、U(Mi)、U(Di)、U(Ni)分别代表CPU使用率、内存使用率、磁盘I/O使用率以及网络带宽的占用率;矩阵[U(Ci),U(Mi),U(Di),U(Ni)]代表服务器各项负载的比率;T为采集周期;kc,km,kd,kn分别代表了四个负载参数的权值系数,代表了各个负载因子对系统的影响程度;为当前服务器的默认权值。作为优选方案,所述kc=0.4,km=0.4,kd=0.1,kn=0.1。作为优选方案,所述计算平均时间,具体为:其中,Avg(T)指代平均时间;Ti为各服务器最近一次的响应时间;N为参与计算的服务器数量。作为优选方案,所述响应时间权值的计算公式为:其中,指代响应时间权值;为服务器的响应时间与整个集群的平均响应时间之比;为当前服务器的默认权值。相比于现有技术,本专利技术实施例具有如下有益效果:通过计算剩余负载权值和响应时间权值相加得到实际权值,根据实际权值和服务器的运行情况改变相应的权重值进行分配任务,解决负载权重值不会随着服务器的运行情况而改变的技术问题,从而实现缩短服务器的响应时间和提高服务效率。附图说明图1:为本专利技术实施例中的方法步骤流程示意图;图2:为本专利技术实施例中的方法原理示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参照图1,本专利技术优选实施例提供了一种基于动态反馈的Nginx负载均衡方法,包括:S1,定时获取各服务器的负载信息和各服务器最近一次的响应时间;S2,根据所述的负载信息计算出当前节点的剩余负载权值;S3,根据所述各服务器最近一次的响应时间计算出平均时间;S4,通过最近一次的响应时间与所述平均响应时间相比,得出该节点响应时间比率,再将所述响应时间比率与默认权值进行响应计算,得到响应时间权值;S5,将计算得到的所述剩余负载权值和所述响应时间权值相加得到实际权值;S6,根据所述实际权值为服务器分配相应的负载。在本实施例中,所述负载信息包括CPU使用率、内存使用率、磁盘I/O使用率以及网络带宽的占用率。在本实施例中,在所述通过最近一次的响应时间与所述平均响应时间相比,得出该节点响应时间比率,再将所述响应时间比率与默认权值进行响应计算,得到响应时间权值之前,还包括:对服务器列表进行轮询,判断当前服务器是否可用;若否,则进行选择下一个服务器;若是,则对当前服务器的最后一次响应时间与所述平均时间进行比对。在本实施例中,所述根据所述实际权值为服务器分配相应的负载,具体包括:判断当前服务器的所述实际权值是否大于已选最优服务器权值,若是,则将当前服务器暂时列为最优服务器;判断是否对服务器列表完成遍历,若否,则继续对服务器列表进行轮询;若是,则选择最优服务器处理。在本实施例中,所述计算当前节点的剩余负载权值,具体为:其中,指代剩余负载权值;U(Ci)、U(Mi)、U(Di)、U(Ni)分别代表CPU使用率、内存使用率、磁盘I/O使用率以及网络带宽的占用率;矩阵[U(Ci),U(Mi),U(Di),U(Ni)]代表服务器各项负载的比率;T为采集周期;kc,km,kd,kn分别代表了四个负载参数的权值系数,代表了各个负载因子对系统的影响程度;为当前服务器的默认权值。在本实施例中,所述kc=0.4,km=0.4,kd=0.1,kn=0.1。在本实施例中,所述计算平均时间,具体为:其中,Avg(T)指代平均时间;Ti为各服务器最近一次的响应时间;N为参与计算的服务器数量。在本实施例中,所述响应时间权值的计算公式为:其中,指代响应时间权值;为服务器的响应时间与整个集群的平均响应时间之比;为当前服务器的默认权值。下面结合具体实施例,对本专利技术进行详细说明。请参照图2,本专利技术通过将收集的服务器动态硬件性能指标和一段时间内处理请求的响应时间,并加入到权重计算模型中,动态算出服务器的权重值,调度器再根据这个动态值分配后端服务器。本专利的改进策略为:每隔一段时间对后端的每一台服务器进行负载参数和请求时间等技术指标的收集。响应时间计算,需要通过最近一次的响应时间与平均响应时间相比,得出该节点响应时间比率,再将响应时间比率与默认值进行响应计算,得到响应响应时间权值。通过将剩余负载权值与响应时间权值相加,最终计算得到了服务器的实际权值,根据这个实际权值为上述服务器分配相应的负载。在后端服务器上部署检测程序并在指定周期内采集负载数据,这些采集的数据通过http协议发送到前端的负载均衡器,最终保存到Nginx日志中。参数定义:集群中有N个后端服务器,可以表示为S=[S1,S2,…Si,…SN],其中Si标识第i本文档来自技高网...

【技术保护点】
1.一种基于动态反馈的Nginx负载均衡方法,其特征在于,包括:定时获取各服务器的负载信息和各服务器最近一次的响应时间;根据所述的负载信息计算出当前节点的剩余负载权值;根据所述各服务器最近一次的响应时间计算出平均时间;通过最近一次的响应时间与所述平均响应时间相比,得出该节点响应时间比率,再将所述响应时间比率与默认权值进行响应计算,得到响应时间权值;将计算得到的所述剩余负载权值和所述响应时间权值相加得到实际权值;根据所述实际权值为服务器分配相应的负载。

【技术特征摘要】
1.一种基于动态反馈的Nginx负载均衡方法,其特征在于,包括:定时获取各服务器的负载信息和各服务器最近一次的响应时间;根据所述的负载信息计算出当前节点的剩余负载权值;根据所述各服务器最近一次的响应时间计算出平均时间;通过最近一次的响应时间与所述平均响应时间相比,得出该节点响应时间比率,再将所述响应时间比率与默认权值进行响应计算,得到响应时间权值;将计算得到的所述剩余负载权值和所述响应时间权值相加得到实际权值;根据所述实际权值为服务器分配相应的负载。2.如权利要求1所述的方法,其特征在于,所述负载信息包括CPU使用率、内存使用率、磁盘I/O使用率以及网络带宽的占用率。3.如权利要求1所述的方法,其特征在于,在所述通过最近一次的响应时间与所述平均响应时间相比,得出该节点响应时间比率,再将所述响应时间比率与默认权值进行响应计算,得到响应时间权值之前,还包括:对服务器列表进行轮询,判断当前服务器是否可用;若否,则进行选择下一个服务器;若是,则对当前服务器的最后一次响应时间与所述平均时间进行比对。4.如权利要求1所述的方法,其特征在于,所述根据所述实际权值为服务器分配相应的负载,具体包括:判断当前服务器的所述实际...

【专利技术属性】
技术研发人员:李鹤何学斌蔡生忠方金石魏建平蔡文苏艾瑞赵娅利陈珊余甜
申请(专利权)人:广州市巨硅信息科技有限公司
类型:发明
国别省市:广东,44

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

1