CN109587220A - 负载均衡方法、装置、计算机设备和存储介质 - Google Patents
负载均衡方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109587220A CN109587220A CN201811329880.1A CN201811329880A CN109587220A CN 109587220 A CN109587220 A CN 109587220A CN 201811329880 A CN201811329880 A CN 201811329880A CN 109587220 A CN109587220 A CN 109587220A
- Authority
- CN
- China
- Prior art keywords
- server
- weighted value
- value
- poll
- accumulation
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种负载均衡方法、装置、计算机设备和存储介质。所述方法包括:接收业务请求,触发各服务器的初始权重值进行权重累积周期处理;当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值;将所述业务请求分配给经过所述权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。本方案能够对服务器资源的变化情况进行相应的调整并均衡分配业务请求,解决服务器负载出现抖动的问题,从而能够保持服务器的稳定运行。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种负载均衡方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,对服务器的处理能力要求也越来越高,服务器在处理大量用户请求时会出现负载的情况,通过负载均衡方法可以根据服务器的不同处理能力将用户请求均衡地进行分配,以提高服务器的响应速度。
然而,系统的更新和调整会使得服务器的资源发生变化,可能导致一些服务器被频繁请求,而有些服务器未被使用,造成服务器负载出现抖动的问题。
发明内容
基于此,有必要针对服务器的资源发生变化造成服务器负载出现抖动的技术问题,提供一种服务器资源发生变化时,能够保持服务器的稳定运行的负载均衡方法、装置、计算机设备和存储介质。
一种负载均衡方法,所述方法包括:
接收业务请求,触发各服务器的初始权重值进行权重累积周期处理;
当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值;
将所述业务请求分配给经过所述权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。
在一个实施例中,所述当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值的步骤包括:
当检测到增加第一服务器时,获取增加的所述第一服务器的初始权重值;
根据所述各服务器的初始权重值和所述第一服务器的初始权重值更新轮询权重值。
在一个实施例中,所述方法还包括:
根据当前整体权重的累积周期数、更新后的轮询权重值、除第一服务器外的其它服务器当前累积的总权重值和所述第一服务器的初始权重值,确定所述第一服务器的初始累积周期数;
根据所述第一服务器的初始累积周期数和所述第一服务器的初始权重值,确定所述第一服务器的累积权重值。
在一个实施例中,所述当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值的步骤,还包括:
当检测到第二服务器的初始权重值被修改时,获取所述第二服务器修改后的初始权重值;
根据除第二服务器外的其它服务器的初始权重值和所述第二服务器修改后的初始权重值更新轮询权重值;
所述方法还包括:
根据当前整体权重的累积周期数、更新后的轮询权重值和除第二服务器外的其它服务器当前累积的总权重值重新确定所述第二服务器的累积权重值。
在一个实施例中,所述当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值的步骤,还包括:
当检测到第三服务器被移除时,删除所述第三服务器的初始权重值;
更新所述第三服务器的初始权重值被删除后的轮询权重值。
在一个实施例中,所述方法还包括:
当经过所述权重累积周期处理后,出现至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,将累积权重值最大的服务器作为所述目标服务器。
在一个实施例中,所述方法还包括:
当存在至少两个服务器的累积权重值最大时,获取所述至少两个服务器的排序序号,将排序序号在最前面的服务器作为所述目标服务器。
一种负载均衡装置,所述装置包括:
触发模块,用于接收业务请求,触发各服务器的初始权重值进行权重累积周期处理;
更新模块,用于当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值;
分配模块,用于将所述业务请求分配给经过所述权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一方法步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法步骤。
上述负载均衡方法、装置、计算机设备和存储介质,通过接收业务请求,触发各服务器的初始权重值进行权重累积周期处理,当检测到服务器资源发生变化时,根据发生的变化更新轮询权重值,并将业务请求分配给经过权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。本方案能够对服务器资源的变化情况进行相应的调整并继续均衡分配业务请求,解决服务器负载出现抖动的问题,从而能够保持服务器的稳定运行。
附图说明
图1为一个实施例中负载均衡方法的应用环境图;
图2为一个实施例中负载均衡方法的流程示意图;
图3为一个实施例中服务器资源未变化时,分配业务请求步骤的示意图;
图4为一个实施例中增加服务器后,分配业务请求步骤的示意图;
图5为另一个实施例中修改服务器初始权重值后,分配业务请求步骤的示意图;
图6为一个实施例中减少服务器后,分配业务请求步骤的示意图;
图7为另一个实施例中负载均衡方法的流程示意图;
图8为一个实施例中负载均衡装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的负载均衡方法,可以应用于如图1所示的应用环境中。其中,计算机设备102连接多台服务器104,计算机设备102分配业务请求给多台服务器104,当计算机设备102检测到资源发生变化时,进行相应的处理,并继续分配业务请求给多个服务器104。
在一个实施例中,如图2所示,提供了一种负载均衡方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:
步骤202,接收业务请求,触发各服务器的初始权重值进行权重累积周期处理。
其中,初始权重值是指各服务器初始化之后得到的权重值。权重累计周期表示服务器在被请求前,累积一次,加其初始权重值得到的累积权重值,比如,服务器A初始化后的初始权重是3,累积第一个周期的权重值为3,累积第二个周期的权重值为6。
具体地,计算机设备接收到访问服务器的业务请求后,获取各服务器的初始权重值,根据初始权重值确定轮询权重值,然后触发各服务器的初始权重值进行权重累积周期处理。
步骤204,当检测到服务器资源发生变化时,根据变化更新轮询权重值。
其中,轮询权重值可以根据各服务器的初始权重值确定,例如可以是所有服务器初始权重值的总和。
具体地,当计算机设备检测到服务器资源发生变化,比如系统中增加了服务器,系统中减少了服务器,或者修改了服务器的初始权重值中的至少一种,根据不同的服务器资源的变化情况,采用不同的方式进行处理,并更新每次变化后的轮询权重值。
步骤206,将业务请求分配给经过权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。
其中,累积权重值是指服务器的初始权重值经过权重累积周期后得到的权重值。目标服务器是指累积权重值大于或等于更新后的轮询权重值的服务器。
具体地,计算机设备获取更新后的轮询权重值,并继续进行累积周期处理,根据各服务器的累积权重值和更新后的轮询权重值确定目标服务器,并将业务请求分配该目标服务器。
上述负载均衡方法中,通过接收业务请求,触发各服务器的初始权重值进行权重累积周期处理,当检测到服务器资源发生变化时,根据发生的变化更新轮询权重值,并将业务请求分配给经过权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。该方法能够对服务器资源的变化情况进行相应的调整并均衡分配业务请求,解决服务器负载出现抖动的问题,从而能够保持服务器的稳定运行。
在一个实施例中,计算机设备将业务请求分配给经过权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器之后,用目标服务器的累积权重值减去更新后的轮询权重值,以得到该目标服务器的新的累积权重值,并使用该目标服务器的新的累积权重值与其它服务器的累积权重值继续进行业务请求分配处理。通过用目标服务器的累积权重值减去更新后的轮询权重值以进行新的业务请求分配处理,使得所有的业务请求能够被均衡分配。
在一个实施例中,接收业务请求,触发各服务器的初始权重值进行权重累积周期处理的步骤之后还包括:将业务请求分配给经过权重累积周期处理后的累积权重值大于或等于轮询权重值的目标服务器。
当计算机设备没有检测到服务器资源发生变化时,根据各服务器的初始权重值确定轮询权重值,并进行权重累积周期处理,根据各服务器的累积权重值和轮询权重值确定目标服务器,并将业务请求分配该目标服务器。然后用目标服务器的累积权重值减去轮询权重值,以得到该目标服务器的新的累积权重值,并使用该目标服务器的新的累积权重值与其它服务器的累积权重值继续进行业务请求分配处理。通过将目标服务器的累积权重值减去轮询权重值,实现服务器资源未发生变化时的负载均衡分配。
如图3所示,服务器A、B、C的初始权重值分别为3、7、2,轮询权重值为3+7+2=12。经过第一次权重累积周期处理,服务器A、B、C的累积权重值分别为3、7、2,此时没有累积权重值大于或等于轮询权重值12,进入第二个权重累积周期处理,服务器A、B、C的累积权重值分别为3+3、7+7、2+2。此时,有服务器B的累积权重值14大于轮询权重值12,则将服务器B作为目标服务器并将业务请求分配给服务器B。然后用服务器B的累积权重值14减去轮询权重值12,得到新的累积权重值2,与服务器A和服务器C继续进行下一个轮询。
在一个实施例中,当检测到服务器资源发生变化时,根据变化更新轮询权重值的步骤包括:
当检测到增加第一服务器时,获取增加的第一服务器的初始权重值;
根据各服务器的初始权重值和第一服务器的初始权重值更新轮询权重值。
其中,第一服务器是指增加的服务器,可以是一个,也可以是多个。
具体地,当计算机设备检测到系统中的服务器数量发生变化的,确定服务器数量是增加或减少。检测到增加了服务器时,将该增加的服务器作为第一服务器时,获取该第一服务器的初始权重值,并获取其它服务器的初始权重值,根据两者确定新的轮询权重值,然后进行业务请求分配处理。本实施例中检测到增加服务器时,根据新增服务器的初始权重值更新服务器进行业务请求分配的轮询权重值,通过在新增服务器后采取相应的处理,保证业务请求能按照原有的分配方式继续进行轮询。
在一个实施例中,该负载均衡方法还包括:
根据当前整体权重的累积周期数、更新后的轮询权重值、除第一服务器外的其它服务器当前累积的总权重值和第一服务器的初始权重值,确定第一服务器的初始累积周期数;
根据第一服务器的初始累积周期数和第一服务器的初始权重值,确定第一服务器的累积权重值。
其中,当前整体权重的累积周期数是指所有服务器已经进行权重累积的周期次数。初始累积周期数是指第一服务器与其它服务器共同轮询前已经累积的周期次数。
具体地,计算机设备根据增加的第一服务器的初始权重值和其它服务器的初始权重得到更新后的轮询权重,然后获取除第一服务器外的其它服务器的累积权重值并相加得到当前累积的总权重值,按照当前整体权重的累积周期数的取值,确定第一服务器的初始累积周期数。然后计算机设备计算第一服务器的初始累积周期数和初始权重值的乘积得到第一服务器的累积权重值,使得新增的第一服务器可以使用该计算得到的累积权重值与其它服务器共同进行轮询,实现服务器的负载均衡。
比如,n*更新后的轮询权重值=除第一服务器外的其它服务器当前累积的总权重值+第一服务器的初始权重值*m,m>0。其中,n为当前整体权重的累积周期数,m为第一服务器的初始累积周期数。除了m和n,其它值都可以直接获取或计算得到,要计算出m的值,则n可以按顺序优先取n=1,n=2,……,得到满足m>0的m值。如图4所示,有服务器A、B、C,其权重值分别为3、7、2,轮询权重值为3+7+2=12,经过轮询后,服务器A、B、C的累积权重值分别为12、8、4,当前累积的总权重值为12+8+4。此时计算机设备检测到增加了一个服务器D,则获取服务器D的初始权重值5,得到更新后的轮询权重值为3+7+2+5。按照公式n*更新后的轮询权重值=除第一服务器外的其它服务器当前累积的总权重值+第一服务器的初始权重值*m,得到:n*(3+7+2+5)=12+8+4+5*m,n按顺序优先取值1、2、3……,n=1,不符合m>0要求;n=2,m=2,符合。故D加入时的累积权重为5*m=5*2=10。得到服务器D的累积权重值后,使用服务器D的累积权重10与其它服务器当前的累积权重进行业务请求分配处理,处理的过程如图4所示。
在本实施例中,增加了第一服务器后,继续进行业务请求分配处理。计算机设备检测各服务器每次经过权重累积周期处理后的累积权重值,当出现有至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,选择该累积权重值最大的服务器作为目标服务器,将待分配的业务请求分配给该目标服务器。当存在至少两个累积权重值最大的服务器时,获取该至少两个服务器的排序序号,将排序序号在最前面的服务器作为目标服务器,并将待分配的业务请求分配给该目标服务器。再用目标服务器的累积权重值减去更新后的轮询权重值,以得到该目标服务器的新的累积权重值,并使用该目标服务器的新的累积权重值与其它服务器的累积权重值继续进行业务请求分配处理,以使得业务请求分配处理处于循环状态,直到服务器资源再次发生变化。
在一个实施例中,当检测到服务器资源发生变化时,根据变化更新轮询权重值的步骤,还包括:
当检测到第二服务器的初始权重值被修改时,获取第二服务器修改后的初始权重值;
根据除第二服务器外的其它服务器的初始权重值和第二服务器修改后的初始权重值更新轮询权重值。
在一个实施例中,该方法还包括:
根据当前整体权重的累积周期数、更新后的轮询权重值和除第二服务器外的其它服务器当前累积的总权重值重新确定第二服务器的累积权重值。
其中,第二服务器的累积权重值是指根据修改第二服务器的初始权重值后重新确定的累积权重值。
具体地,当计算机设备检测到服务器的权重被修改时,将该服务器作为第二服务器,并获取第二服务器修改后的初始权重值以及其它服务器的初始权重值,确定新的轮询权重值。并且,当服务器的初始权重值被修改后,相应地,该服务器的累积权重值也会发生变化。计算机设备获取除第二服务器外的其它服务器的累积权重值并相加得到当前累积的总权重值,按照式子M=n*更新后的轮询权重值-除第二服务器外的其它服务器当前累积的总权重值,M>0,求得M值。其中,n为当前整体权重的累积周期数,M为初始权重值修改后的第二服务器的累积权重值。通过计算得到初始权重值修改后的服务器的累积权重值,使得该服务器使用新的累积权重值继续进行下一个周期的轮询,以保证服务器的负载均衡。
如图5所示,有服务器A、B、C、D其权重值分别为3、7、2、5,轮询权重值为3+7+2+5=17,经过轮询后,服务器A、B、C、D的累积权重值分别为10、9、14、1。此时计算机设备检测到服务器B的初始权重由原来的7改成4,则获取服务器B修改后的初始权重值4,得到更新后的轮询权重值为3+4+2+5。根据公式得到M=n*(3+4+2+5)-(10+14+1)=n*14-25。n=1,不符合M>0要求;n=2,M=3,符合,故服务器B修改权重后的累积权重值为3。重新确定服务器B的累积权重值后,使用服务器B的累积权重值3与其它服务器当前的累积权重值进行业务请求分配处理。
在本实施例中,修改了服务器的初始权重值后,继续进行业务请求分配处理。计算机设备检测各服务器经过权重累积周期处理后的累积权重值,当出现有至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,比较该至少两个服务器的累积权重值,当存在最大的累积权重值时,选择该累积权重值最大的服务器作为目标服务器,将待分配的业务请求分配给该目标服务器。当存在至少两个累积权重值最大的服务器时,获取该至少两个服务器的排序序号,将排序序号在最前面的服务器作为目标服务器,并将待分配的业务请求分配给该目标服务器。并且使目标服务器的累积权重值减去更新后的轮询权重值,以得到该目标服务器的新的累积权重值。然后使用该目标服务器的新的累积权重值与其它服务器的累积权重值继续进行业务请求分配处理,以使得业务请求分配处理处于循环状态。处理的过程如图5所示。
在一个实施例中,当检测到服务器资源发生变化时,根据变化更新轮询权重值的步骤,还包括:
当检测到第三服务器被移除时,删除第三服务器的初始权重值;
更新第三服务器的初始权重值被删除后的轮询权重值。
具体地,当计算机设备检测到服务器的数量减少时,将被移除的服务器作为第三服务器,删除第三服务器初始权重值和累积权重值,根据移除第三服务器后其余服务器的初始权重值确定新的轮询权重值,然后继续进行业务请求分配处理,保证服务器被删除时,其余服务器能稳定进行业务请求的负载均衡分配处理。
如图6所示,有服务器A、B、C、D其权重值分别为3、7、2、5,轮询权重值为3+7+2+5=17,经过轮询后,服务器A、B、C、D的累积权重值分别为2、11、4、11。此时计算机设备检测到服务器B被移除,则重新确定轮询权重值3+2+5=10。并对其余服务器A、C、D当前的累积权重值继续进行业务请求分配处理过程。
在本实施例中,移除服务器后,继续进行业务请求分配处理。计算机设备检测其余服务器再次经过权重累积周期处理后的累积权重值,当出现有至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,将待分配的业务请求分配给累积权重值最大的服务器。当存在至少两个累积权重值最大的服务器时,获取该至少两个服务器的排序序号,将排序序号在最前面的服务器作为目标服务器,并将待分配的业务请求分配给该目标服务器。然后用目标服务器的累积权重值减去更新后的轮询权重值,并使用该目标服务器的新的累积权重值与其它服务器的累积权重值继续进行业务请求分配处理,以使得业务请求分配处理处于循环状态。处理的过程如图6所示。
在一个实施例中,可能存在增加服务器、减少服务器和修改服务器中的至少两种变化。在该情况下,计算机设备会根据接收到变化的时间依次进行相应的处理。比如,计算机设备检测到在一个小时内,系统中增加了服务器C,修改了服务器B的初始权重值,还删除了服务器A,时间分别为14:30、14:35、14:02,则计算机设备获取增加服务器C的时间、修改服务器B的初始权重值的时间和删除服务器A的时间并比较,先对14:02时删除了服务器A的情况进行相应的处理,再对14:30时增加了服务器C的情况进行处理,最后对14:35修改了服务器B的初始权重值进行相应的响应处理。
在本实施例中,计算机设备还可以根据接收到服务器资源发生变化的消息的先后顺序进行处理。若计算机设备先接收到系统中增加了服务器C的消息,再接收到修改了服务器B的初始权重值的消息,最后接收到删除了服务器A的消息,则先对增加服务器C的情况进行相应的处理,再处理修改服务器B的初始权重值的情况,最后处理删除服务器A的情况。该实施例的方案对检测到服务器资源发生两种或多种变化时,根据变化发生的时间或者接收到变化消息的先后顺序确定处理的顺序,避免服务器资源发生至少两种变化时,无法确定响应的顺序从而导致服务器的运行出现异常的情况。
在一个实施例中,该负载均衡方法还包括:当经过权重累积周期处理后,出现至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,将累积权重值最大的服务器作为目标服务器。
具体地,计算机设备检测各服务器每次经过权重累积周期处理后的累积权重值,当出现有至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,比较该至少两个服务器的累积权重值,当存在最大的累积权重值时,选择该累积权重值最大的服务器作为目标服务器,将业务请求分配给该目标服务器。在出现至少两个服务器可以作为目标服务器的情况时,将业务请求分配给累积权重值最大的服务器,提供了出现两个或多个满足条件的服务器时的业务请求分配方式。
在一个实施例中,该负载均衡方法还包括:当存在至少两个服务器的累积权重值最大时,获取至少两个服务器的排序序号,将排序序号在最前面的服务器作为所述目标服务器。
具体地,计算机设备会给系统中的各服务器一个固定的排序序号,排序的规则可以是根据服务器在系统中首次出现的时间为准。第一个在系统中首次出现的服务器排序最前,时间越往后推,则后面出现的服务器排序序号越靠后。并且排序序号可以是唯一的,当删除某个服务器时,该排序序号可以相应地删除。当计算机设备检测到经过权重累积周期处理后,至少存在两个服务器的累积权重值既满足大于或等于更新后的轮询权重值,又同时满足累积权重值最大的服务器存在两个或多个,也就是说该两个或多个服务器的累积权重值相同,并且该相同的累积权重值是满足条件的服务器的累积权重中的最大值。在这种情况下,计算机设备获取这些具有相同累积权重值的服务器的排序序号,将排序序号在最前面的服务器作为目标服务器,并将业务请求分配给该服务器。对于在出现满足条件的两个或多个服务器时,将排序序号在前的服务器作为目标服务器使得能正常分配业务请求,保持服务器的负载均衡。
在一个实施例中,如图7所示,该负载均衡方法包括:
步骤702,接收业务请求,触发各服务器的初始权重值进行权重累积周期处理。
步骤704,当检测到增加第一服务器时,获取增加的第一服务器的初始权重值。
步骤706,根据各服务器的初始权重值和第一服务器的初始权重值更新轮询权重值。
步骤708,根据当前整体权重的累积周期数、更新后的轮询权重值、除第一服务器外的其它服务器当前累积的总权重值和第一服务器的初始权重值,确定第一服务器的初始累积周期数。
步骤710,根据第一服务器的初始累积周期数和第一服务器的初始权重值,确定第一服务器的累积权重值。
步骤712,当检测到第二服务器的初始权重值被修改时,获取第二服务器修改后的初始权重值。
步骤714,根据除第二服务器外的其它服务器的初始权重值和第二服务器修改后的初始权重值更新轮询权重值。
步骤716,根据当前整体权重的累积周期数、更新后的轮询权重值和除第二服务器外的其它服务器当前累积的总权重值重新确定第二服务器的累积权重值。
步骤718,当检测到第三服务器被移除时,删除第三服务器的初始权重值。
步骤720,更新第三服务器的初始权重值被删除后的轮询权重值。
步骤722,将业务请求分配给经过权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。
步骤724,当经过权重累积周期处理后,出现至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,将累积权重值最大的服务器作为目标服务器。
步骤726,当存在至少两个服务器的累积权重值最大时,获取所述至少两个服务器的排序序号,将排序序号在最前面的服务器作为所述目标服务器。
上述负载均衡方法,当检测到服务器资源发生变化时,可以快速地进行相应的处理,以便继续进行业务请求分配处理。当出现多个满足条件的服务器时,根据服务器的最大累积权重值确定目标服务器,当存在多个最大累积权重值的服务器时,根据排序序号确定目标服务器,提供了出现两个或多个满足条件的服务器时的业务请求分配方式。确定目标服务器后,用目标服务器的累积权重值减去轮询权重值得到新的累积权重值,以使得业务请求分配处理处于循环状态,能够将所有的业务请求都均衡分配。从而能够解决服务器资源发生变化时服务器负载出现抖动的问题,保持服务器的稳定运行。
在本实施例中,发生增加服务器、修改服务器的初始权重值和删除服务器三种变化中的任意一种时,都可能进行新的业务请求分配处理。并且在每次的业务请求分配处理过程中,都将待分配的业务请求分配给经过权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的服务器。当存在存在至少两个服务器的累积权重值最大时,将待分配的业务请求分配给该至少两个服务器的排序序号在最前面的服务器。完成一次待分配的业务请求的处理后,用目标服务器的累积权重值减去轮询权重值得到新的累积权重值,以使得业务请求分配处理处于循环状态。当检测到服务器资源再次发生变化后,停止业务请求分配处理,并立即针对变化的情况进行相应的处理。
本方案可以运用在多种平台上,比如云服务平台,当云容器的数量或主机的资源在运行期间被调整时,采用本方案可以在运行期间立即针对变化进行相应的处理,从而避免服务器负载出现抖动的问题,实现服务器的负载均衡。
应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种负载均衡装置,包括:触发模块802、更新模块804和分配模块806,其中:
触发模块802,用于接收业务请求,触发各服务器的初始权重值进行权重累积周期处理。
更新模块804,用于当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值。
分配模块806,用于将所述业务请求分配给经过所述权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。
在一个实施例中,更新模块804还用于当检测到增加第一服务器时,获取增加的第一服务器的初始权重值;根据各服务器的初始权重值和第一服务器的初始权重值更新轮询权重值。通过在新增服务器后采取相应的处理,保证业务请求能按照原有的分配方式继续进行轮询。
在一个实施例中,更新模块804还用于根据当前整体权重的累积周期数、更新后的轮询权重值、除第一服务器外的其它服务器当前累积的总权重值和第一服务器的初始权重值,确定第一服务器的初始累积周期数;根据第一服务器的初始累积周期数和第一服务器的初始权重值,确定第一服务器的累积权重值。计算新增服务器的累积权重值,使得新增的第一服务器可以使用该计算得到的累积权重值与其它服务器共同进行轮询,实现服务器的负载均衡。
在一个实施例中,更新模块804还用于当检测到第二服务器的初始权重值被修改时,获取第二服务器修改后的初始权重值;根据除第二服务器外的其它服务器的初始权重值和第二服务器修改后的初始权重值更新轮询权重值;根据当前整体权重的累积周期数、更新后的轮询权重值和除第二服务器外的其它服务器当前累积的总权重值重新确定第二服务器的累积权重值。通过计算得到初始权重值修改后的服务器的累积权重值,使得该服务器使用新的累积权重值继续进行下一个周期的轮询,以保证服务器的负载均衡。
在一个实施例中,更新模块804还用于当检测到第三服务器被移除时,删除第三服务器的初始权重值;更新第三服务器的初始权重值被删除后的轮询权重值。该负载均衡装置确保服务器被删除时,其余服务器能稳定进行业务请求的负载均衡分配处理。
在一个实施例中,该负载均衡装置还包括:选择模块。选择模块用于当经过权重累积周期处理后,出现至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,将累积权重值最大的服务器作为目标服务器。在出现至少两个服务器可以作为目标服务器的情况时,将业务请求分配给累积权重值最大的服务器,提供了出现两个或多个满足条件的服务器时的业务请求分配方式。
在一个实施例中,该选择模块还用于:当存在至少两个服务器的累积权重值最大时,获取所述至少两个服务器的排序序号,将排序序号在最前面的服务器作为所述目标服务器。对于在出现满足条件的两个或多个服务器时,将排序序号在前的服务器作为目标服务器使得能正常分配业务请求,保持服务器的负载均衡。
关于负载均衡装置的具体限定可以参见上文中对于负载均衡方法的限定,在此不再赘述。上述负载均衡装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种负载均衡方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述负载均衡方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述负载均衡方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种负载均衡方法,所述方法包括:
接收业务请求,触发各服务器的初始权重值进行权重累积周期处理;
当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值;
将所述业务请求分配给经过所述权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。
2.根据权利要求1所述的方法,其特征在于,所述当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值的步骤包括:
当检测到增加第一服务器时,获取增加的所述第一服务器的初始权重值;
根据所述各服务器的初始权重值和所述第一服务器的初始权重值更新轮询权重值。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据当前整体权重的累积周期数、更新后的轮询权重值、除第一服务器外的其它服务器当前累积的总权重值和所述第一服务器的初始权重值,确定所述第一服务器的初始累积周期数;
根据所述第一服务器的初始累积周期数和所述第一服务器的初始权重值,确定所述第一服务器的累积权重值。
4.根据权利要求1所述的方法,其特征在于,所述当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值的步骤,还包括:
当检测到第二服务器的初始权重值被修改时,获取所述第二服务器修改后的初始权重值;
根据除第二服务器外的其它服务器的初始权重值和所述第二服务器修改后的初始权重值更新轮询权重值;
所述方法还包括:
根据当前整体权重的累积周期数、更新后的轮询权重值和除第二服务器外的其它服务器当前累积的总权重值重新确定所述第二服务器的累积权重值。
5.根据权利要求1所述的方法,其特征在于,所述当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值的步骤,还包括:
当检测到第三服务器被移除时,删除所述第三服务器的初始权重值;
更新所述第三服务器的初始权重值被删除后的轮询权重值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当经过所述权重累积周期处理后,出现至少两个服务器的累积权重值大于或等于更新后的轮询权重值时,将累积权重值最大的服务器作为所述目标服务器。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当存在至少两个服务器的累积权重值最大时,获取所述至少两个服务器的排序序号,将排序序号在最前面的服务器作为所述目标服务器。
8.一种负载均衡装置,其特征在于,所述装置包括:
触发模块,用于接收业务请求,触发各服务器的初始权重值进行权重累积周期处理;
更新模块,用于当检测到所述服务器资源发生变化时,根据所述变化更新轮询权重值;
分配模块,用于将所述业务请求分配给经过所述权重累积周期处理后的累积权重值大于或等于更新后的轮询权重值的目标服务器。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811329880.1A CN109587220B (zh) | 2018-11-09 | 2018-11-09 | 负载均衡方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811329880.1A CN109587220B (zh) | 2018-11-09 | 2018-11-09 | 负载均衡方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109587220A true CN109587220A (zh) | 2019-04-05 |
CN109587220B CN109587220B (zh) | 2021-09-10 |
Family
ID=65921930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811329880.1A Active CN109587220B (zh) | 2018-11-09 | 2018-11-09 | 负载均衡方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109587220B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532094A (zh) * | 2019-08-23 | 2019-12-03 | 四川汇安融信息技术服务有限公司 | 一种负载均衡权重值修改方法及处理系统 |
CN111144810A (zh) * | 2019-12-24 | 2020-05-12 | 金蝶软件(中国)有限公司 | 一种数据处理方法、装置及相关设备 |
CN111523565A (zh) * | 2020-03-30 | 2020-08-11 | 中南大学 | 一种大数据的流式处理方法、系统及存储介质 |
CN111666131A (zh) * | 2020-07-03 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 负载均衡分配方法、装置、计算机设备和存储介质 |
CN111984437A (zh) * | 2020-08-31 | 2020-11-24 | 平安医疗健康管理股份有限公司 | Drg分组服务器rpc服务处理方法、装置和计算机设备 |
CN112333255A (zh) * | 2020-10-27 | 2021-02-05 | 重庆紫光华山智安科技有限公司 | 负载均衡调度方法、装置、调度服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101583057A (zh) * | 2009-06-11 | 2009-11-18 | 中兴通讯股份有限公司 | 网络选路方法及装置 |
CN105282259A (zh) * | 2015-11-13 | 2016-01-27 | 深圳联友科技有限公司 | 用于后台集群服务的负载均衡分配方法、代理及系统 |
CN105939389A (zh) * | 2016-06-29 | 2016-09-14 | 乐视控股(北京)有限公司 | 负载均衡方法及装置 |
CN106850852A (zh) * | 2017-03-20 | 2017-06-13 | 南京大学 | 一种私有云基于动态反馈的局部一致性哈希负载均衡方法 |
CN108667878A (zh) * | 2017-03-31 | 2018-10-16 | 北京京东尚科信息技术有限公司 | 服务器负载均衡方法及装置、存储介质、电子设备 |
-
2018
- 2018-11-09 CN CN201811329880.1A patent/CN109587220B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101583057A (zh) * | 2009-06-11 | 2009-11-18 | 中兴通讯股份有限公司 | 网络选路方法及装置 |
CN105282259A (zh) * | 2015-11-13 | 2016-01-27 | 深圳联友科技有限公司 | 用于后台集群服务的负载均衡分配方法、代理及系统 |
CN105939389A (zh) * | 2016-06-29 | 2016-09-14 | 乐视控股(北京)有限公司 | 负载均衡方法及装置 |
CN106850852A (zh) * | 2017-03-20 | 2017-06-13 | 南京大学 | 一种私有云基于动态反馈的局部一致性哈希负载均衡方法 |
CN108667878A (zh) * | 2017-03-31 | 2018-10-16 | 北京京东尚科信息技术有限公司 | 服务器负载均衡方法及装置、存储介质、电子设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532094A (zh) * | 2019-08-23 | 2019-12-03 | 四川汇安融信息技术服务有限公司 | 一种负载均衡权重值修改方法及处理系统 |
CN110532094B (zh) * | 2019-08-23 | 2023-03-31 | 四川汇安融信息技术股份有限公司 | 一种负载均衡权重值修改方法及处理系统 |
CN111144810A (zh) * | 2019-12-24 | 2020-05-12 | 金蝶软件(中国)有限公司 | 一种数据处理方法、装置及相关设备 |
CN111144810B (zh) * | 2019-12-24 | 2023-03-17 | 金蝶软件(中国)有限公司 | 一种数据处理方法、装置及相关设备 |
CN111523565A (zh) * | 2020-03-30 | 2020-08-11 | 中南大学 | 一种大数据的流式处理方法、系统及存储介质 |
CN111523565B (zh) * | 2020-03-30 | 2023-06-20 | 中南大学 | 一种大数据的流式处理方法、系统及存储介质 |
CN111666131A (zh) * | 2020-07-03 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 负载均衡分配方法、装置、计算机设备和存储介质 |
CN111984437A (zh) * | 2020-08-31 | 2020-11-24 | 平安医疗健康管理股份有限公司 | Drg分组服务器rpc服务处理方法、装置和计算机设备 |
CN112333255A (zh) * | 2020-10-27 | 2021-02-05 | 重庆紫光华山智安科技有限公司 | 负载均衡调度方法、装置、调度服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109587220B (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109587220A (zh) | 负载均衡方法、装置、计算机设备和存储介质 | |
CN107493314A (zh) | 基于多租户的服务提供系统及方法 | |
CN108292162A (zh) | 用于多线程访问的软件定义fifo缓冲器 | |
CN108846632A (zh) | 线程处理方法及装置 | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
CN105183670B (zh) | 用于分布式缓存系统的数据处理方法和装置 | |
JP6730522B2 (ja) | ストレージシステム内に入力/出力帯域を割り当てるシステムと方法 | |
CN114615338B (zh) | 一种边缘环境中基于层共享的微服务部署方法及装置 | |
CN113342498A (zh) | 并发请求处理方法、装置、服务器及存储介质 | |
CN111985748A (zh) | 订单批次处理方法、装置及计算机系统 | |
CN111553699B (zh) | 一种资源调度方法及装置 | |
CN111124254A (zh) | 调度存储空间回收请求的方法、电子设备和程序产品 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN116594753A (zh) | 任务调度方法、装置、电子设备、存储介质及程序产品 | |
CN110609735A (zh) | 任务管理方法、设备和计算机程序产品 | |
CN108833505B (zh) | 数据请求处理方法、服务器及存储介质 | |
CN114327824A (zh) | 一种业务主机的确定方法、装置及电子设备 | |
CN110187957B (zh) | 一种下载任务的排队方法、装置及电子设备 | |
JP2023096237A (ja) | コスト管理装置、コスト管理方法、およびプログラム | |
EP3550421A1 (en) | Storage controller and io request processing method | |
CN105159619B (zh) | 一种虚拟内存的扩展方法及装置 | |
CN114327905A (zh) | 负载均衡方法、装置及计算机设备 | |
CN113553180A (zh) | 一种容器的调度方法、装置及电子设备 | |
JP5664376B2 (ja) | 仮想計算機割り当てシステム、及び仮想計算機割り当て方法 | |
CN110474974A (zh) | 存储空间处理方法、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |