CN113382040B - 负载均衡方法、电子设备及计算机可读存储介质 - Google Patents

负载均衡方法、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN113382040B
CN113382040B CN202110500258.8A CN202110500258A CN113382040B CN 113382040 B CN113382040 B CN 113382040B CN 202110500258 A CN202110500258 A CN 202110500258A CN 113382040 B CN113382040 B CN 113382040B
Authority
CN
China
Prior art keywords
node
load
target
data
load data
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.)
Active
Application number
CN202110500258.8A
Other languages
English (en)
Other versions
CN113382040A (zh
Inventor
刘建德
梁宏建
贾承晖
田凤国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Consys Technology Co ltd
Original Assignee
Shenzhen Consys Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Consys Technology Co ltd filed Critical Shenzhen Consys Technology Co ltd
Priority to CN202110500258.8A priority Critical patent/CN113382040B/zh
Publication of CN113382040A publication Critical patent/CN113382040A/zh
Application granted granted Critical
Publication of CN113382040B publication Critical patent/CN113382040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Retry When Errors Occur (AREA)
  • Multi Processors (AREA)

Abstract

本申请公开了一种负载均衡方法、电子设备及计算机可读存储介质,涉及负载均衡领域。通过获取集群中的目标节点的节点状态,根据节点状态获取目标节点的初始负载数据,根据至少两个初始负载数据获取集群的负载均值,基于初始负载数据和负载均值获取每一目标节点对应的目标负载数据,根据目标负载数据对多个目标节点进行负载均衡,能够实现集群中的各个节点之间的动态负载均衡,解决单个节点过载的问题。

Description

负载均衡方法、电子设备及计算机可读存储介质
技术领域
本申请涉及负载均衡领域,尤其是涉及一种负载均衡方法、电子设备及计算机可读存储介质。
背景技术
负载均衡是集群和多进程的关键环节。由于Internet的快速发展和业务量的不断提高,服务器逐渐被大量数据淹没,但是相对网络技术的发展,服务器的处理速度和内存访问速度的增长远低于网络带宽和应用服务的增长,网络带宽增长的同时带来的用户数量的增长,也使得服务器资源消耗严重,而服务器成为网络瓶颈。为了维持各类应用程序处理负载和网络流量负载,可以通过组建服务器集群,利用均衡技术在多进程间进行业务均衡,让所述负载尽可能平均分摊处理,避免出现因为某一进程由于高负载而出现故障,将请求在概率学上平均分配,实现服务效率最大化。
现有的负载均衡方法是需要根据集群中的各个节点的负载状态,将网络服务请求任务转发到指定的服务器子节点,实现负载均衡,无法满足集群中各个节点之间的负载均衡。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种负载均衡方法,能够实现集群中的各个节点之间的动态负载均衡,解决单个节点过载的问题。
本申请还提出一种具有上述负载均衡方法的电子设备。
本申请还提出一种具有上述负载均衡方法的计算机可读存储介质。
根据本申请的第一方面实施例的负载均衡方法,包括:获取集群中的目标节点的节点状态;根据所述节点状态获取所述目标节点的初始负载数据;根据至少两个所述初始负载数据获取所述集群的负载均值;基于所述初始负载数据和所述负载均值获取每一所述目标节点对应的目标负载数据;根据所述目标负载数据对多个所述目标节点进行负载均衡。
根据本申请实施例的负载均衡方法,至少具有如下有益效果:通过获取集群中的目标节点的节点状态,根据节点状态获取目标节点的初始负载数据,根据至少两个初始负载数据获取集群的负载均值,基于初始负载数据和负载均值获取每一目标节点对应的目标负载数据,根据目标负载数据对多个目标节点进行负载均衡,能够实现集群中的各个节点之间的动态负载均衡,解决单个节点过载的问题。
根据本申请的一些实施例,还包括:基于Gossip协议建立所述集群中的多个目标节点之间的通信连接;根据所述通信连接共享多个所述目标节点的所述节点状态和所述初始负载数据。
根据本申请的一些实施例,还包括:获取所述集群中预设的均衡策略;根据所述均衡策略确定所述集群中待进行负载均衡的所述目标节点。
根据本申请的一些实施例,还包括:获取新加入至所述集群的新节点;根据所述新节点确定与所述新节点相邻的第一相邻节点;将所述第一相邻节点的部分初始负载数据分配给所述新节点进行负载均衡。
根据本申请的一些实施例,还包括:获取从所述集群中移除的失效节点;根据所述失效节点确定与所述失效节点相邻的第二相邻目标节点;将所述失效节点的初始负载数据分配给所述第二相邻目标节点进行负载均衡。
根据本申请的一些实施例,基于所述初始负载数据和所述负载均值获取每一所述目标节点对应的目标负载数据,包括:基于所述初始负载数据的大小对多个所述初始负载数据进行遍历组合,得到负载组合;比较所述负载组合和所述负载均值的大小关系;根据所述大小关系确定所述负载组合对应的若干个初始负载数据,作为所述目标节点的目标负载数据。
根据本申请的一些实施例,所述根据所述目标负载数据对多个所述目标节点进行负载均衡,包括:根据所述目标负载数据确定所述初始负载数据以及对应的目标节点;基于Gossip协议将所述初始负载数据从对应的所述目标节点传输到进行负载均衡的其他所述目标节点。
根据本申请的一些实施例,还包括:获取其中一个目标节点中初始负载数据的读取量和写入量;根据所述读取量和所述写入量确定所述初始负载数据的完整性。
根据本申请的第二方面实施例的电子设备,包括:至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述指令时实现如第一方面所述的负载均衡方法。
根据本申请的电子设备,至少具有如下有益效果:通过执行第一方面实施例中提到的负载均衡方法,能够实现集群中的各个节点之间的动态负载均衡,解决单个节点过载的问题。
根据本申请的第三方面实施例的计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的负载均衡方法。
根据本申请的计算机可读存储介质,至少具有如下有益效果:通过执行第一方面实施例中提到的负载均衡方法,能够实现集群中的各个节点之间的动态负载均衡,解决单个节点过载的问题。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
图1为本申请实施例中负载均衡方法中的服务器集群的一具体实施示意图;
图2为本申请实施例中负载均衡方法的一具体流程示意图;
图3为本申请实施例中负载均衡方法中步骤S400的一具体流程示意图;
图4为本申请实施例中负载均衡方法中步骤S500的一具体流程示意图;
图5为本申请实施例中负载均衡方法的服务器集群的另一具体实施示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
需要说明的是,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同流程图中的顺序执行所示出或描述的步骤。如果涉及到“若干”,其含义是一个以上,如果涉及到“多个”,其含义是两个以上,如果涉及到“以下”,均应理解为包括本数。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本申请的实施例,并且除非另外要求,否则不会对本申请的范围施加限制。大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
需要说明的是,如无特殊说明,在实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
负载均衡是集群和多进程的关键环节。由于Internet的快速发展和业务量的不断提高,服务器逐渐被大量数据淹没,但是相对网络技术的发展,服务器的处理速度和内存访问速度的增长远低于网络带宽和应用服务的增长,网络带宽增长的同时带来的用户数量的增长,也使得服务器资源消耗严重,而服务器成为网络瓶颈。为了维持各类应用程序处理负载和网络流量负载,可以通过组建服务器集群,利用均衡技术在多进程间进行业务均衡,让所述负载尽可能平均分摊处理,避免出现因为某一进程由于高负载而出现故障,将请求在概率学上平均分配,实现服务效率最大化。
现有的负载均衡方法是需要根据集群中的各个节点的负载状态,将网络服务请求任务转发到指定的服务器子节点,实现负载均衡,无法满足集群中各个节点之间的负载均衡。
基于此,本申请实施例提供了一种负载均衡方法、电子设备及计算机可读存储介质,能够实现集群中的各个节点之间的动态负载均衡,解决单个节点过载的问题。
第一方面,本申请实施例提供了一种负载均衡方法。
需要说明的是,本申请中执行上述负载均衡方法的服务器集群,如图1所示,该服务器集群的架构为分布式架构,其中该服务器集群中包含个多个节点,其中,每一个节点为一个服务器机箱,能够实时接收整个系统中的网络服务请求,并对网络服务请求进行处理。每一个节点都分配有对应的节点ID,例如节点1、节点2、节点3、节点M、节点N等,通过该节点ID能够确定节点在当前服务器集群的位置定位等信息,用于区分不同的节点。需要说明的是,图1中圈中节点1、节点2、节点3的虚线圆圈是指本申请实施例中所提到的目标节点,即服务器集群中的需要进行负载均衡的节点。
在一些实施例中,本申请实施例中还包括:基于服务器集群中预设的均衡策略确定待进行负载均衡的目标节点。目标节点是指服务器集群中的部分节点或者全部节点,具体节点数目根据均衡策略进行选定。具体地说,服务器集群中预设有均衡策略,该均衡策略用于确定当前服务器集群中需要进行负载均衡的节点,在实际应用中,可以在服务器集群设置各个节点的状态位,通过状态位来确定是否需要进行负载均衡,并且均衡策略可以通过结合服务器集群中的节点ID进行标识,例如均衡策略设定节点ID为1、2和3的节点需要进行负载均衡,该节点1、节点2、节点3为本申请中所提到的目标节点。通过获取集群中预设的均衡策略,能够确定服务器集群中等待进行负载均衡的目标节点,从而有效地控制服务器集群中的节点的均衡状态。
在一些实施例中,本申请实施例中还包括:基于Gossip协议共享多个目标节点的节点状态和初始负载数据。具体地说,服务器集群中的全部或者部分节点通过执行本申请实施例中所提到的负载均衡方法后,可以实现该全部或者部分节点中的实时的负载数据达到均衡状态,其中该服务器集群中的全部或者部分节点为本申请中所提到的目标节点。具体地,基于Gossip算法实现该目标节点之间的状态达到动态均衡的效果。
针对Gossip算法进行说明,Gossip算法又被称为反熵(Anti-Entropy),在一个有界网络中,每个目标节点都随机地与其他目标节点通信,经过一定的数据通信后,所有目标节点的状态都会达成一致。Gossip算法不需要目标节点获知其他目标节点的存在,具有去中心化的特点,目标节点之间完全对等,目标及节点之间通过网络进行数据连通,最终保证各个目标节点之前的状态一致。即使存在部分目标节点出现重启情况,或者有新的目标节点加入,但通过该Gossip算法能够保证在经过一段时间的数据通信后,新加入的目标节点的状态也会与其他目标节点进入动态均衡的状态,其中动态均衡状态是指各个目标节点之间的负载数据基本一致,不会导致任意一个目标节点出现过载的情况。
在一些实施例中,基于Gossip协议建立集群中的多个目标节点的通信连接,通过该通信连接共享多个目标节点的节点状态和初始负载数据,具体地说,基于如图1所示的服务器集群架构,以节点1、节点2和节点3作为本申请中所提到的多个目标节点,节点1、节点2和节点3之间通过Gossip协议所生成的Gossip数据流能够互相共享得知其他节点的节点状态以及指导其他节点的实时的负载数据。在一些实施例中,参照图2,示出了本申请实施例中负载均衡方法的流程示意图。其具体包括步骤:
S100,获取集群中的目标节点的节点状态;
S200,根据节点状态获取目标节点的初始负载数据;
S300,根据至少两个初始负载数据获取集群的负载均值;
S400,基于初始负载数据和负载均值获取每一目标节点对应的目标负载数据;
S500,根据目标负载数据对多个目标节点进行负载均衡。
在步骤S100,获取集群中的目标节点的节点状态,其中节点状态是指当前节点或目标节点的心跳状态,心跳状态表示当前的目标节点是否处于工作状态或者是否接收到新的网络服务请求等负载数据的状态。通过获取节点状态能够快速定位任意目标节点的工作状态。在实际应用中,获取集群中所有目标节点的节点状态,确定所有的目标节点的工作状态。
在步骤S200中,通过目标节点的节点状态确定当前目标节点处于工作状态,根据节点状态获取当前目标节点的初始负载数据,其中初始负载数据是指目标节点当前所负载的具体负载数据量。在实际应用中,会获取集群中所有目标节点的初始负载数据,进行统计,确定每个目标节点的初始负载数据。在步骤S300,通过获取的初始负载数据获取该服务器集群中的负载均值,具体地说,服务器集群通过结合集群中目标节点的数量和初始负载数据的总和,进行均值计算,得到每一个目标节点实际上应该负载的均值数据,该负载均值能够使得当前服务器集群进入负载均衡的状态。例如,当前服务器集群中的目标节点分别为节点1、节点2和节点3,此时节点1的初始负载数据分别为数据1、数据2和数据3,数据大小分别为2单元,2单元和3单元,其中单元是数据大小的单元量,例如KB和MB等;节点2的初始负载数据分别为数据4、数据5和数据6,数据大小分别为1单元,1单元和2单元;节点2的初始负载数据分别为数据7和数据8,数据大小分别为3单元和4单元。通过计算得到服务器集群中当前的负载数据综合为18单元,则计算得到每一个目标节点的负载均值为6单元的负载数据大小。在步骤S400中,基于获取各个目标节点的初始负载数据以及计算得到的负载均值,确定服务器集群中的目标节点所对应的目标负载数据,其中目标负载数据可以是一个也可以是多个,具体数量基于初始负载数据的数据大小以及负载均值大小,基于负载均值对各个目标节点进行初始负载数据的划分,例如将节点1的部分初始负载数据分配给节点2,从而实现动态均衡的效果。
在一些实施例中,参考图3,本申请实施例中步骤S400具体还包括:
S410,基于初始负载数据的大小对多个初始负载数据进行遍历组合,得到负载组合;
S420,比较负载组合和负载均值的大小关系;
S430,根据大小关系确定负载组合对应的若干个初始负载数据,作为目标节点的目标负载数据。
在步骤S410中,获取各个目标节点当前的初始负载数据的数据大小,对其进行统计后,基于所有初始负载数据的数据大小进行遍历组合,得到负载组合,负载组合中包含遍历组合所得到的若干个初始负载数据,不同的负载组合大小在实际应用中可以是相同也可以是不同,但基于负载均衡的原理来说,负载组合大小应限制在一定阈值内的大小,避免出现由于过大的数据大小差距从而影响节点的负载均衡的效果。
在步骤S420中,将遍历得到的负载组合与负载均值进行大小关系比较,比较负载组合中的若干个初始负载数据的数据大小总和与负载均值是否存在较大偏差,可以根据实际情况进行设定偏差阈值,通过偏差阈值确保负载组合中的若干个初始负载数据为合适的负载组合。
在步骤S430中,根据比较得到的大小关系确定该负载组合是否为合适的负载组合,其中合适的负载组合是指该若干负载组合能够保证整个服务器集群中的目标节点在分配到对应的负载数据后,具有相似或相同的负载数据大小,从而达到负载均衡。具体地说,若负载组合的大小与负载均值进行比较后,负载组合的总数据大小与负载均值的大小差距在预设的偏差阈值中,则确定该负载组合为合适的负载组合,确定该负载组合中的若干个初始负载数据为目标节点的目标负载数据。
在一些实施例中,在基于负载组合进行初始负载数据的组合以及分配时,会优先考虑当前目标节点与初始负载数据的亲和性,该亲和性是指初始负载数据所对应的处理事项与目标节点即服务器所具备的处理能力的对应关系,即不同的初始负载数据有对应的目标节点进行优先处理,或是有具备对应处理能力的目标节点进行处理。基于该原理进行初始负载数据的组合以及分配,能够确保服务器集群的负载均衡的效果,提高负载数据的处理效率。
在步骤S500中,根据确定各个目标节点所对应的目标负载数据后对目标节点进行负载均衡,即将确定的目标负载数据从原本所处于的目标节点转移至分配的新的目标节点,从而达到整个服务器集群中的各个目标节点所需要处理的初始负载数据的数据总和相同或相似,达到均衡状态,避免个别目标节点出现过载的问题。
在一些实施例中,参考图4,步骤S500中具体还包括步骤:
S510,根据目标负载数据确定初始负载数据以及对应的目标节点;
S520,基于Gossip协议将初始负载数据从对应的目标节点传输到进行负载均衡的其他目标节点。
在步骤S510和步骤S520中,根据确定得到的目标负载数据确定该目标负载数据所对应的初始负载数据所位于的具体的目标节点,以及目标负载数据需要传输至的目标节点,即确定目标负载数据原本所处的目标节点以及需要传输至的目标节点。基于如图1所示的服务器集群架构以及Gossip协议所构建的Gossip数据流,将初始负载数据从原本的目标节点传输到进行负载均衡的其他目标节点。
在可能实施的应用实例中,以步骤S300中所提到的节点1、节点2和节点3以及对应的初始负载数据为例进行说明,其中节点1的初始负载数据分别为数据1、数据2和数据3,数据大小分别为2单元,2单元和3单元,其中单元是数据大小的单元量,例如KB和MB等;节点2的初始负载数据分别为数据4、数据5和数据6,数据大小分别为1单元,1单元和2单元;节点2的初始负载数据分别为数据7和数据8,数据大小分别为3单元和4单元,经过计算可知当前三个目标节点的负载均值为6单元。对三个目标节点的初始负载数据进行遍历组合,可以得到三个负载组合:[数据1、数据2、数据6],[数据3、数据8],[数据4、数据5、数据7],三个负载组合的数据大小均为6单元,即说明均为合适的负载组合,因此,根据三个负载组合将对应的初始负载数据分配到对应的目标节点,例如基于Gossip数据流将数据1、数据2和数据6分配给节点1进行处理,将数据3、数据8分配给节点2进行处理,将数据4、数据5、数据7分配给节点3进行处理,从而使服务器集群中节点1、节点2以及节点3达到负载均衡的效果。
需要说明的是,负载组合的遍历组合可以根据实际需求进行组合,并且负载组合中所对应的初始负载数据分配到的目标节点也可以根据实际需求进行对应分配,本申请实施例中不做具体限定,只要能够达到本申请实施例中所描述的效果,均属于本申请所涵盖的范围。
在一些实施例中,本申请实施例中还包括:基于新加入服务器集群中的新节点进行负载均衡。如图5所示,当服务器集群中加入新的目标节点时,服务器集群会为其分配对应的节点ID,并且通过Gossip协议将其与其他目标节点建立通信连接,保证该新加入的新节点能够与其他目标节点进行数据交互,即共享节点状态和负载数据等。具体地说,获取新加入至服务器集群中的新节点以及该新节点的工作状态和节点ID,根据该新节点确定新节点相邻的第一相邻节点,可以通过新节点的节点ID确定该节点ID相邻的其他节点ID所对应的目标节点作为第一相邻节点,将相邻的第一相邻节点的部分初始负载数据分配给新节点进行负载均衡。需要说明的是,当新节点分配到第一相邻节点的部分初始负载数据后,整个服务器集群会实时地动态地对多个目标节点进行负载均衡,第一相邻节点所分配的初始负载数据可以是执行本申请实施例中所提到的负载均衡方法后所分配到的负载数据,也可以是执行本申请实施例中所提到的负载均衡方法前本身存有的初始负载数据;并且在执行负载均衡方法的过程中为动态过程,即该方法会基于目标节点的初始负载数据的变化进行一定时间地动态调整,从而保证整个服务器集群始终处于动态均衡的状态。
在一些实施例中,本申请实施例中还包括:基于从服务器集群中移除的失效节点进行负载均衡。如图5所示,当服务器集群中某一目标节点从服务器集群中移除后,服务器集群会通过Gossip协议断开该移除的目标节点与其他目标节点的通信连接,保证移除后的失效节点不再与其他目标节点进行数据交互。具体地说,获取从服务器集群中移除的失效节点以及失效节点的节点ID,根据该失效节点以及失效节点的节点ID确定原本与失效节点相邻的第二相邻目标节点,将该失效节点原本应该处理的初始负载数据分配到相邻的目标节点即第二相邻目标节点。当第二相邻节点分配到失效节点的初始负载数据后,整个服务器集群会重新对多个目标节点进行负载均衡,即会基于目标节点的初始负载数据的变化进行一定时间地动态调整,从而保证整个服务器集群始终处于动态均衡的状态。
需要说明的是,本申请实施例中所提到的第一相邻节点和第二相邻节点基于节点ID的邻近关系所确定,并且第一相邻节点和第二相邻节点的数量可以为一个也可以为两个,具体的数量可以根据实际需求进行选择,以便于整个服务器集群进行动态均衡。
在一些实施例中,本申请实施例中还包括:确定在执行本申请实施例中所提到的负载均衡方法过程中的任意初始负载数据的完整性,具体通过以下方式确定初始负载数据的完整性:获取服务器集群中的任意一个目标节点中初始负载数据的读取量和该初始负载数据写入到其他目标节点的写入量;其中读取量和写入量是指任意初始负载数据从原本的目标节点读取时所对应的读取的数据大小以及将初始负载数据写入到新的目标节点时的写入的数据大小。从服务器集群的全局角度上比较读取量和写入量的数据大小,确定该初始负载数据在从原本的目标节点写入到新的目标节点的过程中的数据完整性,避免出现初始负载数据的数据丢失的情况。在实际应用中,本申请实施例中所提到的服务器集群为分布式架构,在分布式架构中采用Quorum算法保证整个服务器集群中的读写平衡以及全局一致性,防止出现数据错漏的问题。
针对Quorum算法进行说明,在常见的分布式系统中,总会发生诸如机器宕机或网络异常,包括消息的延迟、丢失、重复、乱序,还有网络分区等情况,而通过该Quorum算法能够快速且正确地在服务器集群内部对某个数据即负载数据的值变化一致,并且避免因为发生上述异常情况而破坏整个系统的一致性的问题。在实际进行算法操作的过程中,分布式系统中的每一份数据拷贝对象都被赋予一票。每一个数据操作必须要获得最小的读取票数R或者最小的写入票数W才能进行读取或者写入。如果一个分布式系统有N票,代表一个数据对象有N份冗余拷贝,那么这最小读写票必须满足两个规则:R+W>N;W>N/2。其中第一个规则保证了一个数据不会被同时读写。当一个读写操作请求过来的时候,它必须要获得W个冗余拷贝的许可。而剩下的数量是N-W,小于R,即不足于R,因此不能再有读取请求过来了。同理,当读取请求已经获得了R个冗余拷贝的许可时,写入请求就无法获得许可了。第二条规则保证了数据的串行化修改,即一份数据的冗余拷贝不可能同时被两个写请求修改。通过能够整个分布式系统即服务器集群系统中读写性能平衡,并且保证数据读写的准确性,分区容错性以及系统可用性等。
在本申请实施例中,通过获取集群中的目标节点的节点状态,根据节点状态获取目标节点的初始负载数据,根据至少两个初始负载数据获取集群的负载均值,基于初始负载数据和负载均值获取每一目标节点对应的目标负载数据,根据目标负载数据对多个目标节点进行负载均衡,能够实现集群中的各个节点之间的动态负载均衡,解决单个节点过载的问题。
第二方面,本申请实施例还提供了一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行第一方面实施例中的负载均衡方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请第一方面实施例中的负载均衡方法。处理器通过运行存储在存储器中的非暂态软件程序以及指令,从而实现上述第一方面实施例中的负载均衡方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述第一方面实施例中的负载均衡方法。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述第一方面实施例中的负载均衡方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述第一方面实施例中的负载均衡方法。
第三方面,本申请实施例还提供了计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于:执行第一方面实施例中的负载均衡方法;
在一些实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被第三方面实施例的电子设备中的一个处理器执行,可使得上述一个或多个处理器执行上述第一方面实施例中的负载均衡方法。
以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
在本说明书的描述中,参考术语“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。

Claims (7)

1.负载均衡方法,其特征在于,包括:
获取集群中预设的均衡策略;
根据所述均衡策略确定所述集群中待进行负载均衡的目标节点,所述目标节点是指所述集群中的部分节点或全部节点;
获取所述集群中的所述目标节点的节点状态;
通过所述目标节点的所述节点状态确定当前所述目标节点处于工作状态,根据所述节点状态获取所述目标节点的初始负载数据;
根据至少两个所述初始负载数据获取所述集群的负载均值;
基于所述初始负载数据的大小和预设的负载组合阈值对多个所述初始负载数据进行遍历组合,得到负载组合;
比较所述负载组合和所述负载均值的大小关系;
根据所述大小关系确定所述负载组合对应的若干个初始负载数据,作为所述目标节点的目标负载数据;
根据所述目标负载数据对多个所述目标节点进行负载均衡;
基于Gossip协议建立所述集群中的多个所述目标节点之间的通信连接;
根据所述通信连接共享多个所述目标节点的所述节点状态和所述初始负载数据。
2.根据权利要求1所述的负载均衡方法,其特征在于,还包括:
获取新加入至所述集群的新节点;
根据所述新节点确定与所述新节点相邻的第一相邻节点;
将所述第一相邻节点的部分初始负载数据分配给所述新节点进行负载均衡。
3.根据权利要求1所述的负载均衡方法,其特征在于,还包括:
获取从所述集群中移除的失效节点;
根据所述失效节点确定与所述失效节点相邻的第二相邻目标节点;
将所述失效节点的初始负载数据分配给所述第二相邻目标节点进行负载均衡。
4.根据权利要求1所述的负载均衡方法,其特征在于,所述根据所述目标负载数据对多个所述目标节点进行负载均衡,包括:
根据所述目标负载数据确定所述初始负载数据以及对应的目标节点;
基于Gossip协议将所述初始负载数据从对应的所述目标节点传输到进行负载均衡的其他所述目标节点。
5.根据权利要求1所述的负载均衡方法,其特征在于,还包括:
获取其中一个目标节点中初始负载数据的读取量和写入量;
根据所述读取量和所述写入量确定所述初始负载数据的完整性。
6.电子设备,其特征在于,包括:
至少一个处理器,以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述指令时实现如权利要求1至5任一项所述的负载均衡方法。
7.计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至5任一项所述的负载均衡方法。
CN202110500258.8A 2021-05-08 2021-05-08 负载均衡方法、电子设备及计算机可读存储介质 Active CN113382040B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110500258.8A CN113382040B (zh) 2021-05-08 2021-05-08 负载均衡方法、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110500258.8A CN113382040B (zh) 2021-05-08 2021-05-08 负载均衡方法、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113382040A CN113382040A (zh) 2021-09-10
CN113382040B true CN113382040B (zh) 2022-09-13

Family

ID=77570821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110500258.8A Active CN113382040B (zh) 2021-05-08 2021-05-08 负载均衡方法、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113382040B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979162B (zh) * 2022-05-16 2024-02-09 中国工商银行股份有限公司 节点部署方法和网络系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297331A (zh) * 2012-03-01 2013-09-11 华为技术有限公司 宽带网络网关使用方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661136B2 (en) * 2011-10-17 2014-02-25 Yahoo! Inc. Method and system for work load balancing
CN104077423B (zh) * 2014-07-23 2017-05-03 山东大学(威海) 一种基于一致性散列的结构化数据存储、查询和迁移方法
CN107145307A (zh) * 2017-04-27 2017-09-08 郑州云海信息技术有限公司 一种基于分布式存储的动态元数据优化方法和系统
CN108509275B (zh) * 2018-03-29 2019-11-12 新华三技术有限公司 一种目录迁移方法和元数据负载均衡方法
CN111580963B (zh) * 2020-04-29 2023-07-11 平安科技(深圳)有限公司 存储集群的负载均衡方法、装置、计算机设备及存储介质
CN112256438B (zh) * 2020-06-28 2021-06-25 腾讯科技(深圳)有限公司 负载均衡控制方法和装置、存储介质及电子设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297331A (zh) * 2012-03-01 2013-09-11 华为技术有限公司 宽带网络网关使用方法和装置

Also Published As

Publication number Publication date
CN113382040A (zh) 2021-09-10

Similar Documents

Publication Publication Date Title
US8863145B2 (en) Storage apparatus and load distribution method
US9703610B2 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US6928459B1 (en) Plurality of file systems using weighted allocation to allocate space on one or more storage devices
US7925805B2 (en) Critical resource management
CN110515724B (zh) 资源配置方法、装置、监视器及机器可读存储介质
CN106603692B (zh) 一种分布式存储系统中的数据存储方法及装置
CN109918170A (zh) 一种云数据中心虚拟机动态资源配置方法及系统
US11922059B2 (en) Method and device for distributed data storage
CN108519917A (zh) 一种资源池分配方法和装置
US8832215B2 (en) Load-balancing in replication engine of directory server
CN113382040B (zh) 负载均衡方法、电子设备及计算机可读存储介质
US20140351550A1 (en) Memory management apparatus and method for threads of data distribution service middleware
CN111399761B (zh) 存储资源分配方法、装置及设备、存储介质
CN104142871A (zh) 用于数据备份的方法、装置和分布式文件系统
CN106973091B (zh) 分布式内存数据重分布方法及系统、主控服务器
KR20180046078A (ko) 데이터베이스 리밸런싱 방법
CN108366110A (zh) 一种网站数据交互系统及方法
CN105099753B (zh) 网络管理系统及其处理业务的方法
CN110659303A (zh) 一种数据库节点的读写控制方法及装置
CN112083886B (zh) 一种nas设备的存储管理方法、系统及装置
CN112099728A (zh) 一种执行写操作、读操作的方法及装置
CN106326143A (zh) 一种缓存分配、数据访问、数据发送方法、处理器及系统
CN105282203A (zh) 一种集中目录式p2p网络的建立方法和设备
CN116635831A (zh) 一种数据存储方法、装置及相关设备
CN111857548B (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