CN104954277A - 一种负载均衡方法、网关服务器及相关*** - Google Patents
一种负载均衡方法、网关服务器及相关*** Download PDFInfo
- Publication number
- CN104954277A CN104954277A CN201510337126.2A CN201510337126A CN104954277A CN 104954277 A CN104954277 A CN 104954277A CN 201510337126 A CN201510337126 A CN 201510337126A CN 104954277 A CN104954277 A CN 104954277A
- Authority
- CN
- China
- Prior art keywords
- server
- load
- quantized value
- loaded server
- loaded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种负载均衡方法、网关服务器和相关***,该方法包括:网关服务器实时获取多个负载服务器的负载参数,其中,负载服务器包含由负载服务器所属的主服务器同步的可读数据,负载参数用于表征负载服务器当前的运行状态;网关服务器通过预设算法对负载参数进行计算,以得到多个负载服务器中每个负载服务器各自的负载权重值;网关服务器根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为负载服务器分配预先接收到的请求读取数据的任务,以从负载服务器中读取可读数据。采用本发明能够根据负载服务器的负载能力动态分配数据读取任务,实现负载服务器资源的最优分配。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种负载均衡方法、网关服务器及相关***。
背景技术
基于Linux虚拟服务器(Linux Virtual Server,LVS)实现数据库读负载均衡功能,是提高前端对后台数据的访问性能的重要方式之一。主要是在前端和数据库中间加入proxy模块,将前端的写请求转发到主数据库,读请求平均转发到后台每个从数据库。
随着业务需求的增加相应后端从数据库的数量的也会增加,且后台从数据库各自所在的服务器的资源、性能都存在响应的差异。现有的实现负载均衡的方式为,预先获取每台服务器的性能参数,然后根据性能参数生成静态策略,以使网关根据该静态策略分配服务器资源。现有技术的其缺陷在于,各个服务器的运行状态随时都可能变化,通过静态策略无法实现服务器资源的最优分配。
发明内容
本发明实施例公开了一种负载均衡方法、网关服务器及相关***,能够根据负载服务器的负载能力动态分配数据读取任务,实现负载服务器资源的最优分配。
第一方面,本发明实施例提供了一种负载均衡方法,该方法包括:
网关服务器实时获取多个负载服务器的负载参数,其中,所述负载服务器包含由所述负载服务器所属的主服务器同步的可读数据,所述负载参数用于表征所述负载服务器当前的运行状态;
网关服务器通过预设算法对所述负载参数进行计算,以得到所述多个负载服务器中每个负载服务器各自的负载权重值;
网关服务器根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为所述负载服务器分配预先接收到的请求读取数据的任务,以从所述负载服务器中读取所述可读数据。
结合第一方面,在第一方面的第一种可能的实现方式中,所述实时获取多个负载服务器的负载参数,包括:
实时从协调服务器中获取多个负载服务器的负载参数,其中,所述协调服务器用于接收所述多个负载服务器中的每个负载服务器各自发送的负载参数,并汇总所述负载参数。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R中的至少一种;
当X>X1时,C=C1,当X1>X>X2时,C=C2,当X<X2时,C=C3,其中,C1、C2、C3、X1和X2为预设的有理数,且
当Y>Y1时,M=M1,当Y1>Y>Y2时,M=M2,当Y<Y2时,M=M3,其中,M1、M2、M3、Y1和Y2为预设的有理数,且
当Z>Z1时,D=D1,当Z1>Z>Z2时,D=D2,当Z<Z2时,D=D3,其中,D1、D2、D3、Z1和Z2为预设的有理数,且
Z=util%;
当S>S1时,L=L1,当S1>S>S2时,L=L2,当S<S2时,L=L3,其中,L1、L2、L3、S1和S2为预设的有理数,且S为所述网关服务器向所述负载服务器分配数据读取请求到所述负载服务器反馈读取结果的延时;
当T>T1时,R=R1,当T1>T>T2时,R=R2,当T<T2时,R=R3,其中,R1、R2、R3、T1和T2为预设的有理数,且T为所述主服务器向所述负载服务器同步可读数据的延时。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,当所述负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R时;所述通过预设算法对所述负载参数进行计算,以得到所述多个负载服务器中每个负载服务器各自的负载权重值,包括:
将所述CPU量化值C、所述内存量化值M、所述磁盘量化值D、所述延迟量化值L和所述同步量化值R代入公式:负载权重值=α×C+β×M+γ×D+ε×L+θ×R,以计算出负载权重值,其中,α+β+γ+ε+θ=1,α、β、γ、ε、θ均为介于0到1之间的数。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,其特征在于,
X1或Y1或Z1或S1或T1等于0.8;
X2或Y2或Z2或S2或T2等于0.5。
第二方面,本发明实施例提供了一种网关服务器,该网关服务器包括:
获取单元,用于实时获取多个负载服务器的负载参数,其中,所述负载服务器包含由所述负载服务器所属的主服务器同步的可读数据,所述负载参数用于表征所述负载服务器当前的运行状态;
计算单元,用于通过预设算法对所述负载参数进行计算,以得到所述多个负载服务器中每个负载服务器各自的负载权重值;
分配单元,用于根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为所述负载服务器分配预先接收到的请求读取数据的任务,以从所述负载服务器中读取所述可读数据。
结合第二方面,在第二方面的第一种可能的实现方式中,所述获取单元具体用于实时从协调服务器中获取多个负载服务器的负载参数,其中,所述协调服务器用于接收所述多个负载服务器中的每个负载服务器各自发送的负载参数,并汇总所述负载参数。
结合第二方面或第二方面的第一种可能的实现方式中,在第二方面的第二种可能的实现方式中,所述负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R中的至少一种;
当X>X1时,C=C1,当X1>X>X2时,C=C2,当X<X2时,C=C3,其中,C1、C2、C3、X1和X2为预设的有理数,且
当Y>Y1时,M=M1,当Y1>Y>Y2时,M=M2,当Y<Y2时,M=M3,其中,M1、M2、M3、Y1和Y2为预设的有理数,且
当Z>Z1时,D=D1,当Z1>Z>Z2时,D=D2,当Z<Z2时,D=D3,其中,D1、D2、D3、Z1和Z2为预设的有理数,且
Z=util%;
当S>S1时,L=L1,当S1>S>S2时,L=L2,当S<S2时,L=L3,其中,L1、L2、L3、S1和S2为预设的有理数,且S为所述网关服务器向所述负载服务器分配数据读取请求到所述负载服务器反馈读取结果的延时;
当T>T1时,R=R1,当T1>T>T2时,R=R2,当T<T2时,R=R3,其中,R1、R2、R3、T1和T2为预设的有理数,且T为所述主服务器向所述负载服务器同步可读数据的延时。
结合第二方面的第二种可能的实现方式中,在第二方面的第三种可能的实现方式中,当所述负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R时;所述计算单元具体用于将所述CPU量化值C、所述内存量化值M、所述磁盘量化值D、所述延迟量化值L和所述同步量化值R代入公式:负载权重值=α×C+β×M+γ×D+ε×L+θ×R,以计算出负载权重值,其中,α+β+γ+ε+θ=1,α、β、γ、ε、θ均为介于0到1之间的数。
第三方面,本发明实施例提供一种负载均衡***,包括网关服务器、多个负载服务器和主服务器;所述网关服务器为权利要求6~9任一项所述的网关服务器,其中,
所述主服务器接收数据写入请求;
所述主服务器根据所述写入请求写入数据,并将写入的数据发送到所述多个负载服务器;
所述多个负载服务器接收所述主服务器发送的数据,其中,所述负载服务器接收到的数据为可读数据;
网关服务器实时获取所述多个负载服务器的负载参数,其中,所述负载参数用于表征所述负载服务器当前的运行状态;
网关服务器通过预设算法对所述负载参数进行计算,以得到所述多个负载服务器中每个负载服务器各自的负载权重值;
网关服务器根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为所述负载服务器分配预先接收到的请求读取数据的任务,以从所述负载服务器中读取所述可读数据。
通过实施本发明实施例,网关服务器实时获取各负载服务器的负载参数,根据负载参数分析出各个负载服务器的负载能力,然后根据负载能力动态分配数据读取任务,实现了负载服务器资源的最优分配。
负载服务器将负载参数实时上报给协调服务器而不是网关服务器,减小了网关服务器进行信息交互和存储信息数据的压力;负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R,使得计算出的负载权重值更加准确。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种负载均衡方法的流程示意图;
图1A是本发明实施例提供的一种应用场景示意图;
图2是本发明实施例提供的一种网关服务器的结构示意图;
图3是本发明实施例提供的一种负载均衡***的结构示意图;
图3A是本发明实施例提供的又一种负载均衡***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例中的每个负载服务器中都配置了mysql数据库,mysql中存储有可读数据,网关服务器接收到前端用户请求读取可读数据的请求后,将读取可读数据的任务分配给各个负载服务器,以实现mysql集群负载均衡。
请参见图1,图1是本发明实施例提供的一种负载均衡方法的流程示意图,该方法包括但不限于如下步骤。
步骤S101:网关服务器实时获取多个负载服务器的负载参数,其中,负载服务器包含由负载服务器所属的主服务器同步的可读数据,负载参数用于表征负载服务器当前的运行状态。
具体地,网关服务器获取负载参数的方式包括但限于主动从负载服务器中读取负载参数、或者接收负载服务器发送的负载参数、或者从协调服务器中读取负载参数,其中,协调服务器用于统计各个负载服务器的负载参数、或者接收负载服务器实时发送的负载参数,当然还可以是其他方式,本发明实施例以从协调服务器中读取各个负载服务器的负载参数为优选方案。
网关服务器除了用来获取负载参数外,还用于接收前端的操作请求,并对接收到的操作请求进行辨识,该操作请求包括但不限于读请求(请求从服务器中读取数据)或写请求(请求向服务器中写入数据),当网关服务器接收到写请求时,将写请求转发到主服务器,以使主服务器将写入请求携带的数据写入自身的mysql数据库中,主服务器(主机)写入了数据后再将写入的数据同步到多个负载服务器(备机),其中,主服务器同步到每个负载服务器中的数据可以相同,同步到负载服务器中的数据可以供前端用户读取。当网关服务器接收到前端用户的读请求时,网关服务器需要根据各个负载服务器的负载能力来分配该读请求,以使前端用户从分配好的负载服务器中读取数据,具体可以通过负载参数得出各个负载服务器的负载能力。
负载参数用于表征负载服务器当前的运行状态,包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R中的至少一种。
当X>X1时,C=C1,当X1>X>X2时,C=C2,当X<X2时,C=C3,其中,C1、C2、C3、X1和X2为预设的有理数,且
公式1-1
公式1-1中的“预设时间段”可以根据需要来预先设定,如15分钟、30分钟等,平均值可以是几何平均值、平方平均值、调和平均值、加权平均值等,具体用哪一种(或几种)也需要根据需要来设定。
当Y>Y1时,M=M1,当Y1>Y>Y2时,M=M2,当Y<Y2时,M=M3,其中,M1、M2、M3、Y1和Y2为预设的有理数,且
公式1-2
公式1-2中的数据库内存负载服务器中的mysql数据库运行所占用的虚拟内存,物理内存具体为负载服务器的物理内存。
当Z>Z1时,D=D1,当Z1>Z>Z2时,D=D2,当Z<Z2时,D=D3,其中,D1、D2、D3、Z1和Z2为预设的有理数,且
Z=util% 公式1-3
公式1-3中的util%为一秒内IO操作所占的比例,可以通过运行磁盘统计命令,即iostat命令来获取到util%。
当S>S1时,L=L1,当S1>S>S2时,L=L2,当S<S2时,L=L3,其中,L1、L2、L3、S1和S2为预设的有理数,且S为网关服务器向负载服务器分配数据读取请求到负载服务器反馈读取结果的延时。
具体地,前端用户发出读数据请求时,网关服务器将该请求分配给指定的负载服务器后,该负载服务器要向网关服务器反馈前端用户读取数据的结果。
当T>T1时,R=R1,当T1>T>T2时,R=R2,当T<T2时,R=R3,其中,R1、R2、R3、T1和T2为预设的有理数,且T为主服务器向负载服务器同步可读数据的延时。
具体地,每一次写入到主服务器中的数据都会同步到负载服务器中供前端用户读取,进行数据同步会出现延时。
进一步地,每个负载服务器中都设置有代理模块,代理模块用于实时采集负载服务器的负载参数。
步骤S102:网关服务器通过预设算法对负载参数进行计算,以得到多个负载服务器中每个负载服务器各自的负载权重值。
举例来说,当负载参数为一种参数,如CPU量化值时,CPU量化值可以直接作为负载权重值;当负载参数为多种参数时,各个参数的权重系数之和为1,负载权重值由各个负载参数的权重系数乘以负载参数值后相加得到,例如,当负载参数包括CPU量化值C、内存量化值M和磁盘量化值D,且上述预设算法定义CPU量化值C的权重因子α=0.3、内存量化值M的权重因子β=0.3、磁盘量化值D的权重因子γ=0.4,负载权重值=α×C+β×M+γ×D时(其中,α+β+γ=1),如果某个负载服务器的C=0.1,M=0.2,D=0,那么可以根据预设算法算得该负载服务器的负载权重值为:负载权重值=0.3×0.1+0.3×0.2+0.4×0=0.09。
在一种可选的方案中,负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R;通过预设算法对负载参数进行计算,以得到多个负载服务器中每个负载服务器各自的负载权重值,包括:
将CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R代入公式:负载权重值=α×C+β×M+γ×D+ε×L+θ×R,以计算出负载权重值,其中,α+β+γ+ε+θ=1,α、β、γ、ε、θ均为介于0到1之间的数。
进一步地,上述各个量的具体取值如下:
X1=80%,X2=50%,C1=0,C2=0.1,C3=0.2;
Y1=80%,Y2=50%,M1=0.1,M2=0.2,M3=0.3;
Z1=80%,Z2=50%,D1=0,D2=0.1,D3=0.2;
S1=80%,S2=50%,L1=0,L2=0.1,L3=0.3;
T1=80%,T2=50%,R1=0.1,R2=0.2,R3=0.3;
α=0.1,β=0.1,γ=0.1,ε=0.3,θ=0.4。
步骤S103:网关服务器根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为负载服务器分配预先接收到的请求读取数据的任务,以从负载服务器中读取可读数据。
具体地,当计算出每个负载服务器的负载权重值之后,对负载权重值进行分析,得出每个负载权重值在所有负载权重值中的相对大小,然后根据负载权重值的相对大小来分配读取数据的任务。
举例来说,假设多个负载服务器具体包括第一负载服务器、第二负载服务器和第三负载服务器,且第一负载服务器的负载权重值为0.2,第二负载服务器的负载权重值为0.1,第三负载服务器的负载权重值为0.05,网关服务器某一个时刻接收到了70个数据读请求。在一种可选的方案中,由于上述负载权重值0.2:0.1:0.05=4:2:1,因此网关服务器将这70个任务按4:2:1的比例(或者接近该比例)分配给各个负载服务器,即第一负载服务器40个、第二负载服务器20个、第三负载服务器10个,当按照比例算出分配的任务中包含小数时,可以通过一些算法(如四舍五入等)将小数转换为整数以便于分配。在又一种可选的方案中,网关服务器将70个读请求全部分配给负载权重值最大的第一负载服务器。
请参见图1A,是本发明实施例提供的一种应用场景图,图1A中包括网关服务器、主服务器、若干负载服务器和分布式应用程序协调服务,其中,负载服务器中搭建了mysql数据库,且设置了代理模块。
第一步:各负载服务器通过代理模块获取自身的负载参数;
第二步:各负载服务器将获取到的负载参数上报给分布式应用程序协调服务集群;
第三步:分布式应用程序协调服务将接收到的负载参数进行分析汇总,并存储;
第四步:网关服务器实时从分布式应用程序协调服务中读取负载参数,并通过负载参数计算出各个负载服务器的负载权重值;
第五步:网关服务器接收前端用户发送的读请求;
第六步:网关服务器根据各负载服务器的权重值的相对大小为各负载服务器分配读请求。
需要说明的是,上述部分步骤进行适当调整后同样可以达到相同或类似效果,步骤调整后形成的方案同样落入本发明的保护范围。
在图1所描述的负载均衡方法中,网关服务器实时获取各负载服务器的负载参数,根据负载参数分析出各个负载服务器的负载能力,然后根据负载能力动态分配数据读取任务,实现了负载服务器资源的最优分配。
负载服务器将负载参数实时上报给协调服务器而不是网关服务器,减小了网关服务器进行信息交互和存储信息数据的压力;负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R,使得计算出的负载权重值更加准确。
上述详细阐述了本发明实施例的方法,为了便于更好地实施本发明实施例的上述方案,相应地,下面提供了本发明实施例的装置。
请参见图2,图2是本发明实施例提供的一种网关服务器20的结构示意图,该网关服务器20可以包括获取单元201、计算单元202、分配单元203,其中,各个单元的详细描述如下。
获取单元201用于实时获取多个负载服务器的负载参数,其中,负载服务器包含由负载服务器所属的主服务器同步的可读数据,负载参数用于表征负载服务器当前的运行状态。
具体地,获取单元201获取负载参数的方式包括但限于主动从负载服务器中读取负载参数、或者接收负载服务器发送的负载参数、或者从协调服务器中读取负载参数,其中,协调服务器用于统计各个负载服务器的负载参数、或者接收负载服务器实时发送的负载参数,当然还可以是其他方式,本发明实施例以从协调服务器中读取各个负载服务器的负载参数为优选方案。
网关服务器20会接收前端的操作请求,并对接收到的操作请求进行辨识,该操作请求包括但不限于读请求(请求从服务器中读取数据)或写请求(请求向服务器中写入数据),当网关服务器20接收到写请求时,将写请求转发到主服务器,以使主服务器将写入请求携带的数据写入自身的mysql数据库中,主服务器(主机)写入了数据后再将写入的数据同步到多个负载服务器(备机),其中,主服务器同步到每个负载服务器中的数据可以相同,同步到负载服务器中的数据可以供前端用户读取。当网关服务器20接收到前端用户的读请求时,网关服务器20需要根据各个负载服务器的负载能力来分配该读请求,以使前端用户从分配好的负载服务器中读取数据,具体可以通过负载参数得出各个负载服务器的负载能力。
负载参数用于表征负载服务器当前的运行状态,包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R中的至少一种。
当X>X1时,C=C1,当X1>X>X2时,C=C2,当X<X2时,C=C3,其中,C1、C2、C3、X1和X2为预设的有理数,且
公式1-1
公式1-1中的“预设时间段”可以根据需要来预先设定,如15分钟、30分钟等,平均值可以是几何平均值、平方平均值、调和平均值、加权平均值等,具体用哪一种(或几种)也需要根据需要来设定。
当Y>Y1时,M=M1,当Y1>Y>Y2时,M=M2,当Y<Y2时,M=M3,其中,M1、M2、M3、Y1和Y2为预设的有理数,且
公式1-2
公式1-2中的数据库内存负载服务器中的mysql数据库运行所占用的虚拟内存,物理内存具体为负载服务器的物理内存。
当Z>Z1时,D=D1,当Z1>Z>Z2时,D=D2,当Z<Z2时,D=D3,其中,D1、D2、D3、Z1和Z2为预设的有理数,且
Z=util% 公式1-3
公式1-3中的util%为一秒内IO操作所占的比例,可以通过运行磁盘统计命令,即iostat命令来获取。
当S>S1时,L=L1,当S1>S>S2时,L=L2,当S<S2时,L=L3,其中,L1、L2、L3、S1和S2为预设的有理数,且S为网关服务器20向负载服务器分配数据读取请求到负载服务器反馈读取结果的延时。
具体地,前端用户发出读数据请求时,网关服务器20将该请求分配给指定的负载服务器后,该负载服务器要向网关服务器20反馈前端用户读取数据的结果。
当T>T1时,R=R1,当T1>T>T2时,R=R2,当T<T2时,R=R3,其中,R1、R2、R3、T1和T2为预设的有理数,且T为主服务器向负载服务器同步可读数据的延时。
具体地,每一次写入到主服务器中的数据都会同步到负载服务器中供前端用户读取,进行数据同步会出现延时。
进一步地,每个负载服务器中都设置有代理模块,代理模块用于实时采集负载服务器的负载参数。
计算单元202用于通过预设算法对负载参数进行计算,以得到多个负载服务器中每个负载服务器各自的负载权重值。
举例来说,当负载参数为一种参数,如CPU量化值时,CPU量化值可以直接作为负载权重值;当负载参数为多种参数时,各个参数的权重系数之和为1,负载权重值由各个负载参数的权重系数乘以负载参数值后相加得到,例如,当负载参数包括CPU量化值C、内存量化值M和磁盘量化值D,且上述预设算法定义CPU量化值C的权重因子α=0.3、内存量化值M的权重因子β=0.3、磁盘量化值D的权重因子γ=0.4,负载权重值=α×C+β×M+γ×D时(其中,α+β+γ=1),如果某个负载服务器的C=0.1,M=0.2,D=0,那么可以根据预设算法算得该负载服务器的负载权重值为:负载权重值=0.3×0.1+0.3×0.2+0.4×0=0.09。
在一种可选的方案中,负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R;通过预设算法对负载参数进行计算,以得到多个负载服务器中每个负载服务器各自的负载权重值,包括:
将CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R代入公式:负载权重值=α×C+β×M+γ×D+ε×L+θ×R,以计算出负载权重值,其中,α+β+γ+ε+θ=1,α、β、γ、ε、θ均为介于0到1之间的数。
进一步地,上述各个量的具体取值如下:
X1=80%,X2=50%,C1=0,C2=0.1,C3=0.2;
Y1=80%,Y2=50%,M1=0.1,M2=0.2,M3=0.3;
Z1=80%,Z2=50%,D1=0,D2=0.1,D3=0.2;
S1=80%,S2=50%,L1=0,L2=0.1,L3=0.3;
T1=80%,T2=50%,R1=0.1,R2=0.2,R3=0.3;
α=0.1,β=0.1,γ=0.1,ε=0.3,θ=0.4。
分配单元203用于根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为负载服务器分配预先接收到的请求读取数据的任务,以从负载服务器中读取可读数据。
具体地,当计算单元202计算出每个负载服务器的负载权重值之后,分配单元203对负载权重值进行分析,得出每个负载权重值在所有负载权重值中的相对大小,然后根据负载权重值的相对大小来分配读取数据的任务。
举例来说,假设多个负载服务器具体包括第一负载服务器、第二负载服务器和第三负载服务器,且第一负载服务器的负载权重值为0.2,第二负载服务器的负载权重值为0.1,第三负载服务器的负载权重值为0.05,网关服务器20某一个时刻接收到了70个数据读请求。在一种可选的方案中,由于上述负载权重值0.2:0.1:0.05=4:2:1,因此分配单元203将这70个任务按4:2:1的比例(或者接近该比例)分配给各个负载服务器,即第一负载服务器40个、第二负载服务器20个、第三负载服务器10个,当按照比例算出分配的任务中包含小数时,可以通过一些算法(如四舍五入等)将小数转换为整数以便于分配。在又一种可选的方案中,分配单元203将70个读请求全部分配给负载权重值最大的第一负载服务器。
在图2所描述的网关服务器20中,网关服务器20实时获取各负载服务器的负载参数,根据负载参数分析出各个负载服务器的负载能力,然后根据负载能力动态分配数据读取任务,实现了负载服务器资源的最优分配。
负载服务器将负载参数实时上报给协调服务器而不是网关服务器20,减小了网关服务器20进行信息交互和存储信息数据的压力;负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R,使得计算出的负载权重值更加准确。
上述详细阐述了本发明实施例的方法和装置,为了便于更好地实施本发明实施例的上述方案,相应地,下面提供了本发明实施例的相关***。
请参见图3,图3是本发明实施例提供的一种负载均衡***30的结构示意图,该***包括网关服务器301、负载服务器302和主服务器303,其中,
主服务器303接收数据写入请求;
主服务器303根据写入请求写入数据,并将写入的数据发送到多个负载服务器302;
多个负载服务器302接收主服务器303发送的数据,其中,负载服务器302接收到的数据为可读数据;
网关服务器301实时获取多个负载服务器302的负载参数,其中,负载参数用于表征负载服务器302当前的运行状态;
网关服务器301通过预设算法对负载参数进行计算,以得到多个负载服务器302中每个负载服务器302各自的负载权重值;
网关服务器301根据每个负载服务器302各自的负载权重值在所有负载权重值中的相对大小,为负载服务器302分配预先接收到的请求读取数据的任务,以从负载服务器302中读取可读数据。
在一种可选的方案中,负载均衡***30还可以为图3A所示的结构,在图3A中,负载均衡***30还包括协调服务器304,协调服务器304用于接收各负载服务器302上报的负载参数,并将负载参数进行汇总和存储,供网关服务器301访问。
具体地,负载均衡***30中各个部分的具体实现可以对应参照图1所示的方法实施例,此处不再赘述。
综上所述,通过实施本发明实施例,网关服务器实时获取各负载服务器的负载参数,根据负载参数分析出各个负载服务器的负载能力,然后根据负载能力动态分配数据读取任务,实现了负载服务器资源的最优分配。
负载服务器将负载参数实时上报给协调服务器而不是网关服务器,减小了网关服务器进行信息交互和存储信息数据的压力;负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R,使得计算出的负载权重值更加准确。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种负载均衡方法,其特征在于,包括:
网关服务器实时获取多个负载服务器的负载参数,其中,所述负载服务器包含由所述负载服务器所属的主服务器同步的可读数据,所述负载参数用于表征所述负载服务器当前的运行状态;
网关服务器通过预设算法对所述负载参数进行计算,以得到所述多个负载服务器中每个负载服务器各自的负载权重值;
网关服务器根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为所述负载服务器分配预先接收到的请求读取数据的任务,以从所述负载服务器中读取所述可读数据。
2.根据权利要求1所述的方法,其特征在于,所述实时获取多个负载服务器的负载参数,包括:
实时从协调服务器中获取多个负载服务器的负载参数,其中,所述协调服务器用于接收所述多个负载服务器中的每个负载服务器各自发送的负载参数,并汇总所述负载参数。
3.根据权利要求1或2所述的方法,其特征在于,所述负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R中的至少一种;
当X>X1时,C=C1,当X1>X>X2时,C=C2,当X<X2时,C=C3,其中,C1、C2、C3、X1和X2为预设的有理数,且
当Y>Y1时,M=M1,当Y1>Y>Y2时,M=M2,当Y<Y2时,M=M3,其中,M1、M2、M3、Y1和Y2为预设的有理数,且
当Z>Z1时,D=D1,当Z1>Z>Z2时,D=D2,当Z<Z2时,D=D3,其中,D1、D2、D3、Z1和Z2为预设的有理数,且
Z=util%;
当S>S1时,L=L1,当S1>S>S2时,L=L2,当S<S2时,L=L3,其中,L1、L2、L3、S1和S2为预设的有理数,且S为所述网关服务器向所述负载服务器分配数据读取请求到所述负载服务器反馈读取结果的延时;
当T>T1时,R=R1,当T1>T>T2时,R=R2,当T<T2时,R=R3,其中,R1、R2、R3、T1和T2为预设的有理数,且T为所述主服务器向所述负载服务器同步可读数据的延时。
4.根据权利要求3所述的方法,其特征在于,当所述负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R时;所述通过预设算法对所述负载参数进行计算,以得到所述多个负载服务器中每个负载服务器各自的负载权重值,包括:
将所述CPU量化值C、所述内存量化值M、所述磁盘量化值D、所述延迟量化值L和所述同步量化值R代入公式:负载权重值=α×C+β×M+γ×D+ε×L+θ×R,以计算出负载权重值,其中,α+β+γ+ε+θ=1,α、β、γ、ε、θ均为介于0到1之间的数。
5.根据权利要求4所述的方法,其特征在于,
X1或Y1或Z1或S1或T1等于0.8;
X2或Y2或Z2或S2或T2等于0.5。
6.一种网关服务器,其特征在于,包括:
获取单元,用于实时获取多个负载服务器的负载参数,其中,所述负载服务器包含由所述负载服务器所属的主服务器同步的可读数据,所述负载参数用于表征所述负载服务器当前的运行状态;
计算单元,用于通过预设算法对所述负载参数进行计算,以得到所述多个负载服务器中每个负载服务器各自的负载权重值;
分配单元,用于根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为所述负载服务器分配预先接收到的请求读取数据的任务,以从所述负载服务器中读取所述可读数据。
7.根据权利要求6所述的网关服务器,其特征在于,所述获取单元具体用于实时从协调服务器中获取多个负载服务器的负载参数,其中,所述协调服务器用于接收所述多个负载服务器中的每个负载服务器各自发送的负载参数,并汇总所述负载参数。
8.根据权利要求6或7所述的网关服务器,其特征在于,所述负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R中的至少一种;
当X>X1时,C=C1,当X1>X>X2时,C=C2,当X<X2时,C=C3,其中,C1、C2、C3、X1和X2为预设的有理数,且
当Y>Y1时,M=M1,当Y1>Y>Y2时,M=M2,当Y<Y2时,M=M3,其中,M1、M2、M3、Y1和Y2为预设的有理数,且
当Z>Z1时,D=D1,当Z1>Z>Z2时,D=D2,当Z<Z2时,D=D3,其中,D1、D2、D3、Z1和Z2为预设的有理数,且
Z=util%;
当S>S1时,L=L1,当S1>S>S2时,L=L2,当S<S2时,L=L3,其中,L1、L2、L3、S1和S2为预设的有理数,且S为所述网关服务器向所述负载服务器分配数据读取请求到所述负载服务器反馈读取结果的延时;
当T>T1时,R=R1,当T1>T>T2时,R=R2,当T<T2时,R=R3,其中,R1、R2、R3、T1和T2为预设的有理数,且T为所述主服务器向所述负载服务器同步可读数据的延时。
9.根据权利要求8所述的网关服务器,其特征在于,当所述负载参数包括CPU量化值C、内存量化值M、磁盘量化值D、延迟量化值L和同步量化值R时;所述计算单元具体用于将所述CPU量化值C、所述内存量化值M、所述磁盘量化值D、所述延迟量化值L和所述同步量化值R代入公式:负载权重值=α×C+β×M+γ×D+ε×L+θ×R,以计算出负载权重值,其中,α+β+γ+ε+θ=1,α、β、γ、ε、θ均为介于0到1之间的数。
10.一种负载均衡***,其特征在于,包括网关服务器、多个负载服务器和主服务器;所述网关服务器为上述权利要求6~9任一项所述的网关服务器,其中,
所述主服务器接收数据写入请求;
所述主服务器根据所述写入请求写入数据,并将写入的数据发送到所述多个负载服务器;
所述多个负载服务器接收所述主服务器发送的数据,其中,所述负载服务器接收到的数据为可读数据;
网关服务器实时获取所述多个负载服务器的负载参数,其中,所述负载参数用于表征所述负载服务器当前的运行状态;
网关服务器通过预设算法对所述负载参数进行计算,以得到所述多个负载服务器中每个负载服务器各自的负载权重值;
网关服务器根据每个负载服务器各自的负载权重值在所有负载权重值中的相对大小,为所述负载服务器分配预先接收到的请求读取数据的任务,以从所述负载服务器中读取所述可读数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510337126.2A CN104954277B (zh) | 2015-06-17 | 2015-06-17 | 一种负载均衡方法、网关服务器及相关*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510337126.2A CN104954277B (zh) | 2015-06-17 | 2015-06-17 | 一种负载均衡方法、网关服务器及相关*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104954277A true CN104954277A (zh) | 2015-09-30 |
CN104954277B CN104954277B (zh) | 2018-11-06 |
Family
ID=54168639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510337126.2A Active CN104954277B (zh) | 2015-06-17 | 2015-06-17 | 一种负载均衡方法、网关服务器及相关*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104954277B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871983A (zh) * | 2015-12-10 | 2016-08-17 | 乐视云计算有限公司 | 一种选择服务器的方法及装置 |
CN106469091A (zh) * | 2016-09-05 | 2017-03-01 | 北京百度网讯科技有限公司 | 用于分配可用区的方法和装置 |
CN108694102A (zh) * | 2018-05-11 | 2018-10-23 | 携程旅游信息技术(上海)有限公司 | 一种基于Nexus服务的数据操作方法、设备、***和介质 |
CN108717384A (zh) * | 2018-05-18 | 2018-10-30 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN108737176A (zh) * | 2018-05-20 | 2018-11-02 | 湖北九州云仓科技发展有限公司 | 一种数据网关控制方法、电子设备、存储介质及架构 |
CN108737255A (zh) * | 2018-05-31 | 2018-11-02 | 北京明朝万达科技股份有限公司 | 负载均衡方法、负载均衡装置及服务器 |
CN108924879A (zh) * | 2018-06-22 | 2018-11-30 | 北京格瑞空间科技有限公司 | 一种用于无线物联网的负载均衡方法 |
CN109327540A (zh) * | 2018-11-16 | 2019-02-12 | 平安科技(深圳)有限公司 | 电子装置、服务器负载均衡方法及存储介质 |
CN110308996A (zh) * | 2019-07-09 | 2019-10-08 | 北京首汽智行科技有限公司 | 一种用户url请求的匹配方法 |
CN111182024A (zh) * | 2019-11-20 | 2020-05-19 | 视联动力信息技术股份有限公司 | 一种数据同步方法、装置及存储介质 |
CN113810205A (zh) * | 2020-06-11 | 2021-12-17 | ***通信有限公司研究院 | 服务算力信息的上报、接收方法、服务器及数据中心网关 |
CN115426221A (zh) * | 2022-10-14 | 2022-12-02 | 湖南省邮电规划设计院有限公司 | 一种物联网网关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007071505A1 (en) * | 2005-12-19 | 2007-06-28 | International Business Machines Corporation | Load-balancing metrics for adaptive dispatching of long asynchronous network requests |
CN101267269A (zh) * | 2008-02-27 | 2008-09-17 | 中兴通讯股份有限公司 | 交互式网络电视***中负载均衡的实现方法及*** |
CN101888316A (zh) * | 2010-05-06 | 2010-11-17 | 袁隽 | 根据应用场景特征参数控制服务器能耗的方法及装置 |
CN102281190A (zh) * | 2011-07-01 | 2011-12-14 | 杭州斯凯网络科技有限公司 | 负载均衡装置组网方法以及服务器、客户端接入方法 |
CN102469023A (zh) * | 2010-11-19 | 2012-05-23 | ***通信集团公司 | 基于云计算的调度方法、单元及*** |
CN102611735A (zh) * | 2011-12-21 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种应用服务的负载均衡方法及*** |
CN103248636A (zh) * | 2012-02-03 | 2013-08-14 | 深圳市腾讯计算机***有限公司 | 离线下载的***及方法 |
CN103401947A (zh) * | 2013-08-20 | 2013-11-20 | 曙光信息产业(北京)有限公司 | 多个服务器的任务分配方法和装置 |
-
2015
- 2015-06-17 CN CN201510337126.2A patent/CN104954277B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007071505A1 (en) * | 2005-12-19 | 2007-06-28 | International Business Machines Corporation | Load-balancing metrics for adaptive dispatching of long asynchronous network requests |
CN101267269A (zh) * | 2008-02-27 | 2008-09-17 | 中兴通讯股份有限公司 | 交互式网络电视***中负载均衡的实现方法及*** |
CN101888316A (zh) * | 2010-05-06 | 2010-11-17 | 袁隽 | 根据应用场景特征参数控制服务器能耗的方法及装置 |
CN102469023A (zh) * | 2010-11-19 | 2012-05-23 | ***通信集团公司 | 基于云计算的调度方法、单元及*** |
CN102281190A (zh) * | 2011-07-01 | 2011-12-14 | 杭州斯凯网络科技有限公司 | 负载均衡装置组网方法以及服务器、客户端接入方法 |
CN102611735A (zh) * | 2011-12-21 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种应用服务的负载均衡方法及*** |
CN103248636A (zh) * | 2012-02-03 | 2013-08-14 | 深圳市腾讯计算机***有限公司 | 离线下载的***及方法 |
CN103401947A (zh) * | 2013-08-20 | 2013-11-20 | 曙光信息产业(北京)有限公司 | 多个服务器的任务分配方法和装置 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871983A (zh) * | 2015-12-10 | 2016-08-17 | 乐视云计算有限公司 | 一种选择服务器的方法及装置 |
US10320894B2 (en) | 2016-09-05 | 2019-06-11 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for allocating availability zone |
CN106469091A (zh) * | 2016-09-05 | 2017-03-01 | 北京百度网讯科技有限公司 | 用于分配可用区的方法和装置 |
CN106469091B (zh) * | 2016-09-05 | 2018-05-18 | 北京百度网讯科技有限公司 | 用于分配可用区的方法和装置 |
CN108694102A (zh) * | 2018-05-11 | 2018-10-23 | 携程旅游信息技术(上海)有限公司 | 一种基于Nexus服务的数据操作方法、设备、***和介质 |
CN108717384A (zh) * | 2018-05-18 | 2018-10-30 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN108737176A (zh) * | 2018-05-20 | 2018-11-02 | 湖北九州云仓科技发展有限公司 | 一种数据网关控制方法、电子设备、存储介质及架构 |
CN108737176B (zh) * | 2018-05-20 | 2021-10-22 | 湖北九州云仓科技发展有限公司 | 一种数据网关控制方法、电子设备、存储介质及架构 |
CN108737255B (zh) * | 2018-05-31 | 2020-07-10 | 北京明朝万达科技股份有限公司 | 负载均衡方法、负载均衡装置及服务器 |
CN108737255A (zh) * | 2018-05-31 | 2018-11-02 | 北京明朝万达科技股份有限公司 | 负载均衡方法、负载均衡装置及服务器 |
CN108924879A (zh) * | 2018-06-22 | 2018-11-30 | 北京格瑞空间科技有限公司 | 一种用于无线物联网的负载均衡方法 |
CN108924879B (zh) * | 2018-06-22 | 2021-07-30 | 北京格瑞空间科技有限公司 | 一种用于无线物联网的负载均衡方法 |
CN109327540A (zh) * | 2018-11-16 | 2019-02-12 | 平安科技(深圳)有限公司 | 电子装置、服务器负载均衡方法及存储介质 |
CN110308996A (zh) * | 2019-07-09 | 2019-10-08 | 北京首汽智行科技有限公司 | 一种用户url请求的匹配方法 |
CN110308996B (zh) * | 2019-07-09 | 2022-11-04 | 北京首汽智行科技有限公司 | 一种用户url请求的匹配方法 |
CN111182024A (zh) * | 2019-11-20 | 2020-05-19 | 视联动力信息技术股份有限公司 | 一种数据同步方法、装置及存储介质 |
CN111182024B (zh) * | 2019-11-20 | 2022-08-02 | 视联动力信息技术股份有限公司 | 一种数据同步方法、装置及存储介质 |
CN113810205A (zh) * | 2020-06-11 | 2021-12-17 | ***通信有限公司研究院 | 服务算力信息的上报、接收方法、服务器及数据中心网关 |
CN115426221A (zh) * | 2022-10-14 | 2022-12-02 | 湖南省邮电规划设计院有限公司 | 一种物联网网关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104954277B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104954277A (zh) | 一种负载均衡方法、网关服务器及相关*** | |
US11086676B1 (en) | Allocating computing resources based on user intent | |
US10558498B2 (en) | Method for scheduling data flow task and apparatus | |
US9749208B2 (en) | Integrated global resource allocation and load balancing | |
US9021477B2 (en) | Method for improving the performance of high performance computing applications on Cloud using integrated load balancing | |
CN109582448B (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
CN103227838B (zh) | 一种多重负载均衡处理装置与方法 | |
US20110145153A1 (en) | Negotiating agreements within a cloud computing environment | |
US9600343B2 (en) | System and method for analyzing computing system resources | |
CN105373429A (zh) | 任务调度方法、装置及*** | |
CN106406821A (zh) | 数据处理请求的排序方法及装置 | |
US20120233313A1 (en) | Shared scaling server system | |
CN110149377A (zh) | 一种视频服务节点资源分配方法、***、装置及存储介质 | |
JP6116102B2 (ja) | クラスタシステム、および、負荷分散方法 | |
CN111600957A (zh) | 文件传输方法、装置、***和电子设备 | |
CN103988179A (zh) | 用于在地理分布数据中心中降低延迟和改善弹性的优化机制 | |
Meskar et al. | Fair multi-resource allocation in mobile edge computing with multiple access points | |
CN111369162A (zh) | 任务分配方法和***、客户关系管理***、设备和介质 | |
CN108243254A (zh) | 电子装置、应用升级版本发布的方法及存储介质 | |
CN112241319A (zh) | 均衡负载的方法、电子设备和计算机程序产品 | |
US20210117237A1 (en) | Method, devices and computer program products for resource usage | |
CN111314234A (zh) | 一种流量分配的方法、装置、存储介质及电子设备 | |
CN104092729A (zh) | 一种云计算方法 | |
CN108845860B (zh) | 一种quota管理方法、装置及电子设备 | |
Kim et al. | Virtual machines placement for network isolation in clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |