CN110798517B - 去中心化集群负载均衡方法、系统、移动终端及存储介质 - Google Patents

去中心化集群负载均衡方法、系统、移动终端及存储介质 Download PDF

Info

Publication number
CN110798517B
CN110798517B CN201911007767.6A CN201911007767A CN110798517B CN 110798517 B CN110798517 B CN 110798517B CN 201911007767 A CN201911007767 A CN 201911007767A CN 110798517 B CN110798517 B CN 110798517B
Authority
CN
China
Prior art keywords
node
load
service
nodes
hash ring
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
CN201911007767.6A
Other languages
English (en)
Other versions
CN110798517A (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.)
Yamaha Motor Solutions Co Ltd Xiamen
Original Assignee
Yamaha Motor Solutions Co Ltd Xiamen
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 Yamaha Motor Solutions Co Ltd Xiamen filed Critical Yamaha Motor Solutions Co Ltd Xiamen
Priority to CN201911007767.6A priority Critical patent/CN110798517B/zh
Publication of CN110798517A publication Critical patent/CN110798517A/zh
Application granted granted Critical
Publication of CN110798517B publication Critical patent/CN110798517B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • 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/1029Protocols 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明适用于信息处理技术领域,提供了一种去中心化集群负载均衡方法、系统、移动终端及存储介质,该方法包括:搭建集群环境,在集群环境构建哈希环,哈希环上设有多个服务节点,每个服务节点均对应一服务器;对哈希环上的每个服务节点的路由表进行初始化;根据预设时间间隔持续获取每个服务节点的负载状态,当接收到用户请求时,对所有服务节点的负载状态进行比较,以获取负载最低的目标节点;将用户请求分发到目标节点,以使目标节点对用户请求进行响应。本发明通过采用哈希环的方式进行集群的维护管理,有效的利用了去中心思想将用户流量分发到集群中,提高了负载均衡效率,防止了由于移动终端自身性能瓶颈所导致的负载均衡效率受限制的现象。

Description

去中心化集群负载均衡方法、系统、移动终端及存储介质
技术领域
本发明属于信息处理技术领域,尤其涉及一种去中心化集群负载均衡方法、系统、移动终端及存储介质。
背景技术
目前,随着互联网技术的高度普及,爆炸式的web并发访问请求给网络带宽和服务器性能带来了巨大的挑战,单台应用服务器很难快速的对用户请求给予响应。为了提高系统性能,在目前主流的网络配置中,通常采用增加应用服务器的方式来将应用服务器集群化,从而提升系统负载能力。
服务器集群由多台提供相同服务的高性能服务器组成,在这组服务器的前端部署一台能够实现负载均衡的设备,所有的用户请求都通过移动终端进行分发。负载均衡的实现,将用户请求分流到了各个服务器中,充分发挥了所有服务器的性能,同时,后台某一服务器的宕机也不会造成应用服务的无法运行,极大地提高了系统服务的安全性与扩展性。
现有的负载均衡方法使用过程中,所有的用户请求都需要穿透移动终端,由于移动终端存在自身的流量瓶颈,随着访问量的不断激增,移动终端也会面临自身的性能瓶颈问题,使得负载均衡效率受限制。
发明内容
本发明实施例要解决的技术问题是,现有的负载均衡方法其均衡效率受限制的问题。
本发明实施例是这样实现的,一种去中心化集群负载均衡方法,所述方法包括:
搭建集群环境,并在所述集群环境构建哈希环,所述哈希环上设有多个服务节点,每个所述服务节点均对应一服务器;
对所述哈希环上的每个所述服务节点的路由表进行初始化;
根据预设时间间隔持续获取每个所述服务节点的负载状态,并当接收到用户请求时,对所有所述服务节点的所述负载状态进行比较,以获取负载最低的目标节点;
将所述用户请求分发到所述目标节点,以使所述目标节点对所述用户请求进行响应。
更进一步的,所述根据预设时间间隔持续获取每个所述服务节点的负载状态的步骤包括:
分别获取每个所述服务节点对应所述服务器的系统和硬件信息,并根据所述系统和所述硬件信息计算负载指标;
根据所述预设时间间隔持续对所述负载指标进行更新。
更进一步的,所述根据所述系统和所述硬件信息计算负载指标所采用的计算公式为:
R(Ti)=k1*R(Bi)+k2*R(Si)+k3*R(IOi)+k4*R(Ci)+k5*R(Mi);
其中,i=0,1,...,n-1,
Figure BDA0002243260340000021
R(Ti)为所述负载指标,R(Bi)为网络带宽使用率,R(Si)为服务器存储空间的使用率,R(IOi)是服务器磁盘I/O的访问率,R(Ci)为CPU的利用率,R(Mi)为内存利用率,k为各项指标的权重。
更进一步的,所述根据所述系统和所述硬件信息计算负载指标所采用的计算公式还包括:
R(Bi)=Dr/Dt
其中,Dr为当前所述服务节点的实际使用带宽,Dt为当前所述服务节点的总带宽;
R(Si)=Sr/St
其中,Sr为当前所述服务节点已经使用的存储空间大小,St为当前所述服务节点的总存储空间大小;
R(IOi)=D(IO)r/D(IO)t
其中,D(IO)r为当前所述服务节点的实际I/O访问数据量,D(IO)t为当前所述服务节点总线上流过的最大I/O量;
Figure BDA0002243260340000031
其中,Tm1、Tm2为当前所述服务节点从开始运行一直至m1、m2时刻的累计运行时间与磁盘等待时间的差值;Tcpu1、Tcpu2为对应所述系统运行到m1、m2时刻的累计运行时间;
R(Mi)=Mr/Mt
其中,Mr为当前所述服务节点已使用的内存,Mt为当前所述服务节点总内存大小。
更进一步的,所述对所述哈希环上的每个所述服务节点的路由表进行初始化的步骤包括:
对每个所述服务节点对应的所述路由表中的前驱节点和后继节点对应进行更新。
更进一步的,所述根据预设时间间隔持续获取每个所述服务节点的负载状态的步骤之后,所述方法还包括:
将所述负载状态进行广播,并当判断到所述负载状态满足离线条件时,判定对应所述服务节点为离线节点;
控制所有所述服务节点进行前驱节点和后继节点的更新。
本发明实施例的另一目的在于提供一种去中心化集群负载均衡系统,所述系统包括:
环境构建模块,用于搭建集群环境,并在所述集群环境构建哈希环,所述哈希环上设有多个服务节点,每个所述服务节点均对应一服务器;
初始化模块,用于对所述哈希环上的每个所述服务节点的路由表进行初始化;
负载比较模块,用于根据预设时间间隔持续获取每个所述服务节点的负载状态,并当接收到用户请求时,对所有所述服务节点的所述负载状态进行比较,以获取负载最低的目标节点;
请求分发模块,用于将所述用户请求分发到所述目标节点,以使所述目标节点对所述用户请求进行响应。
更进一步的,所述负载比较模块还用于:
分别获取每个所述服务节点对应所述服务器的系统和硬件信息,并根据所述系统和所述硬件信息计算负载指标;
根据所述预设时间间隔持续对所述负载指标进行更新。
本发明实施例的另一目的在于提供一种移动终端,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端执行上述的去中心化集群负载均衡方法。
本发明实施例的另一目的在于提供一种存储介质,其存储有上述的移动终端中所使用的计算机程序,该计算机程序被处理器执行时实现上述的去中心化集群负载均衡方法的步骤。
本发明实施例,通过采用哈希环的方式进行集群的维护管理,有效的利用了去中心思想将用户流量分发到集群中,提高了负载均衡效率,防止了由于移动终端自身性能瓶颈所导致的负载均衡效率受限制的现象,通过对所有所述服务节点的所述负载状态进行比较的设计,以提高所述目标节点获取的准确性,进而保障了所述用户请求的处理效率。
附图说明
图1是本发明第一实施例提供的去中心化集群负载均衡方法的流程图;
图2是本发明第二实施例提供的去中心化集群负载均衡方法的流程图;
图3是本发明第二实施例提供的中心化与去中心化模型请求响应时间的结构示意图;
图4是本发明第三实施例提供的去中心化集群负载均衡系统的结构示意图;
图5是本发明第四实施例提供的移动终端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
请参阅图1,是本发明第一实施例提供的去中心化集群负载均衡方法的流程图,包括步骤:
步骤S10,搭建集群环境,并在所述集群环境构建哈希环;
其中,所述哈希环上设有多个服务节点,每个所述服务节点均对应一服务器,哈希环维护着每个服务节点的路由表,每个服务节点均包含节点地址、节点标识、对应的前驱节点、对应的后继节点和路由表等元素,节点标识根据节点地址生成;
具体的,该步骤中建立哈希环的时候,主要包括:
(1)创建首个节点,以自身为第一个环节点,生成哈希环;
(2)创建其它节点,并逐个加入哈希环。在指定的节点N0上加入新节点Nk。加入过程是借助已有节点N0的路由表为新的节点Nk找到后继Nsuc=N0.findSuccessor(Nk.key),此时Nk的前驱为null,确认新节点Nk与后继节点Nsuc的相互关系。需要注意的是,这个确认过程指的是待确认节点的后继是不是现在的后继,以及,后继节点的前驱会不会因待确认节点的加入而更新。因为可能后继节点Nsuc和新节点Nk之间还有节点Nbet,则需要更新Nk的后继节点为Nbet,且后继节点Nsuc和原前驱之间加入了Nk之后,原前驱的后继要改变。确认新加入的节点Nsuc的原前驱节点Npre=Nsuc.getPre()的后继节点。因后继节点Nsuc的原前驱节点Npre可能会因为新节点Nk的加入而改变其后继节点;
步骤S20,对所述哈希环上的每个所述服务节点的路由表进行初始化;
步骤S30,根据预设时间间隔持续获取每个所述服务节点的负载状态,并当接收到用户请求时,对所有所述服务节点的所述负载状态进行比较,以获取负载最低的目标节点;
其中,该预设时间间隔可以根据需求进行设置,通过该负载状态的获取,以判断各服务节点当前的负载处理状态,并通过对所有所述服务节点的所述负载状态进行比较,以使将当前负载最低的服务节点设置为所述目标节点;
步骤S40,将所述用户请求分发到所述目标节点,以使所述目标节点对所述用户请求进行响应;
其中,通过将所述用户请求分发到所述目标节点的设计,以达到负载均衡的效果,优选的,所述将所述用户请求分发到所述目标节点的步骤之后,所述方法还包括:
当判断到预设时间阈值内未接收到针对所述用户请求的请求响应时,将所述目标节点标记为离线节点,并根据步骤S30对所述负载状态的比较结果,将处于第二顺位的负载最低的服务节点设置为所述目标节点,并将所述用户请求发送至对应目标节点进行处理;
本实施例,通过采用哈希环的方式进行集群的维护管理,有效的利用了去中心思想将用户流量分发到集群中,提高了负载均衡效率,防止了由于移动终端自身性能瓶颈所导致的负载均衡效率受限制的现象,通过对所有所述服务节点的所述负载状态进行比较的设计,以提高所述目标节点获取的准确性,进而保障了所述用户请求的处理效率。
实施例二
请参阅图2,是本发明第二实施例提供的去中心化集群负载均衡方法的流程图,包括步骤:
步骤S11,搭建集群环境,并在所述集群环境构建哈希环;
其中,所述哈希环上设有多个服务节点,每个所述服务节点均对应一服务器;
步骤S21,对所述哈希环上的每个所述服务节点的路由表进行初始化;
其中,通过所述路由表进行初始化的设计,以达到对每个所述服务节点对应的所述路由表中的前驱节点和后继节点对应进行更新的效果;
步骤S31,分别获取每个所述服务节点对应所述服务器的系统和硬件信息,并根据所述系统和所述硬件信息计算负载指标;
其中,所述根据所述系统和所述硬件信息计算负载指标所采用的计算公式为:
R(Ti)=k1*R(Bi)+k2*R(Si)+k3*R(IOi)+k4*R(Ci)+k5*R(Mi);
其中,i=0,1,...,n-1,
Figure BDA0002243260340000071
R(Ti)为所述负载指标,R(Bi)为网络带宽使用率,R(Si)为服务器存储空间的使用率,R(IOi)是服务器磁盘I/O的访问率,R(Ci)为CPU的利用率,R(Mi)为内存利用率,k为各项指标的权重,权重越大,表明该项指标对节点性能影响越大,反之影响越小。经过多次负载均衡试验,根据试验结果将初始默认值设置如下:k=(0.06,0.16,0.14,0.32,0.32),由于实际运行环境的不同,因此并非一成不变,需要根据实际情况进行调节,使其达到最好的负载均衡效果;
R(Bi)=Dr/Dt
其中,Dr为当前所述服务节点的实际使用带宽,Dt为当前所述服务节点的总带宽;
R(Si)=Sr/St
其中,Sr为当前所述服务节点已经使用的存储空间大小,St为当前所述服务节点的总存储空间大小;
R(IOi)=D(IO)r/D(IO)t
其中,D(IO)r为当前所述服务节点的实际I/O访问数据量,D(IO)t为当前所述服务节点总线上流过的最大I/O量;
Figure BDA0002243260340000072
其中,Tm1、Tm2为当前所述服务节点从开始运行一直至m1、m2时刻的累计运行时间与磁盘等待时间的差值;Tcpu1、Tcpu2为对应所述系统运行到m1、m2时刻的累计运行时间;
R(Mi)=Mr/Mt
其中,Mr为当前所述服务节点已使用的内存,Mt为当前所述服务节点总内存大小;
步骤S41,根据所述预设时间间隔持续对所述负载指标进行更新;
其中,该预设时间间隔可以根据需求进行设置,该负载指标用于表征对应的负载状态,即当所述负载指标的值越大时,则判定对应的所述服务节点此时的负载越多;
步骤S51,将所述负载状态进行广播,并当判断到所述负载状态满足离线条件时,判定对应所述服务节点为离线节点;
其中,通过对所述负载状态进行离线条件的判断,以判定对应的服务节点是否由于断网、断电或宕机等原因所导致出现离线状态,具体的,该步骤中采用gossip广播协议的方式进行所述负载状态的广播,该步骤中,通过将所述负载状态进行广播的设计,以达到容错机制的效果;
步骤S61,控制所有所述服务节点进行前驱节点和后继节点的更新;
其中,通过进行前驱节点和后继节点的更新的设计,以及时更新集群的网络结构,从而提供了动态负载均衡和故障转移的效果,使得系统具有高性能、高并发、高可用、安全性;
具体的,该步骤中,通过引入容错机制的设计,当哈希环上服务节点意外离线(断网、断电、宕机等)时,通过gossip广播会感知离线节点,使系统能及时更新哈希环中相关节点的前驱和后继;
步骤S71,当接收到用户请求时,将本地时间复杂度最小的排序算法对所有所述负载状态进行负载排序,以获取负载最低的目标节点;
优选的,在步骤S71之前,所述方法还包括:
获取本地存储的多个排序算法,并分别对所有所述排序算法进行时间复杂度分析;根据分析结果选择时间复杂度最小的所述排序算法对所有所述负载状态进行负载排序,其时间复杂度为O(n*log2n);
其中,该排序算法可以根据需求进行数量和内容的设置,该排序算法用于对所述负载指标进行大小排序,以达到对各服务节点进行负载大小排序的效果;
步骤S81,将所述用户请求分发到所述目标节点,以使所述目标节点对所述用户请求进行响应;
具体的,本实施以一电商网站集群为例:
以B/S模式搭建系统运行环境,使用如下工具进行系统开发:
(1)基于springboot框架;
(2)开发平台为SpringToolSuite4;
(3)利用第三方开源包oshi获取服务器运行信息;
(4)数据库采用Postgres,并使用Redis进行缓存;
使用性能不一的6台服务器搭建网站集群环境,节点服务器信息如表1所示;
表1集群节点信息
Figure BDA0002243260340000091
集群启动负载均衡后,使用JMeter工具模拟用户请求,对集群性能进行测试评估,验证所述去中心集群负载均衡方法的可行性;设定初始并发量为250个虚拟用户,逐渐增加虚拟用户个数,并且设置用户的迭代次数,进行两次测试评估,集群性能在客户端主要以响应时间的长短为评估指标,在服务端以吞吐量为评估指标。第一次使用HaProxy的中心化负载均衡模型,第二次使用所述去中心集群负载均衡方法的环状模型,当虚拟用户增加到2000个时,删除某一节点来模拟节点服务器意外宕机的情形,对系统两组测试结果进行统计分析,结果如图3所示。
从图3可以看出,当请求量较低时,两种模型都能及时响应用户请求,随着请求量的逐步增多,响应时间也都相应增加,对比HaProxy模型,环状模型响应时间更短,表现出了更好的性能;当节点意外离线时,HaProxy模型停止工作,由于所述去中心化集群负载均衡的环状模型引入了容错机制,因此在节点意外离线时仍然可以重新组网并提供服务,重新组网时环状模型需要进行计算,因此响应时间略微增加,在图3中反映在曲线斜率变化稍大,之后又逐渐平滑,表明模型具有较高的稳定性,在负载调度上更加合理,提高了集群应对高并发的极限能力。同时,在一定的时间周期内对服务器的负载能力进行评估,将负载均衡地分配到集群中,提高了集群吞吐量,缩短了系统的响应时间,对Web服务器集群具有较高的实用价值。
本实施例,通过采用哈希环的方式进行集群的维护管理,有效的利用了去中心思想将用户流量分发到集群中,提高了负载均衡效率,防止了由于移动终端自身性能瓶颈所导致的负载均衡效率受限制的现象,通过对所有所述服务节点的所述负载状态进行比较的设计,以提高所述目标节点获取的准确性,进而保障了所述用户请求的处理效率,通过进行负载指标的计算设计,以使针对不同业务场景合理设置权重指标,提高了集群的响应速度。
实施例三
请参阅图4,是本发明第三实施例提供的去中心化集群负载均衡系统100的结构示意图,包括:环境构建模块10、初始化模块11、负载比较模块12和请求分发模块13,其中:
环境构建模块10,用于搭建集群环境,并在所述集群环境构建哈希环,所述哈希环上设有多个服务节点,每个所述服务节点均对应一服务器;
初始化模块11,用于对所述哈希环上的每个所述服务节点的路由表进行初始化,
其中,所述初始化模块11还用于:对每个所述服务节点对应的所述路由表中的前驱节点和后继节点对应进行更新。
负载比较模块12,用于根据预设时间间隔持续获取每个所述服务节点的负载状态,并当接收到用户请求时,对所有所述服务节点的所述负载状态进行比较,以获取负载最低的目标节点。
其中,所述负载比较模块12还用于:分别获取每个所述服务节点对应所述服务器的系统和硬件信息,并根据所述系统和所述硬件信息计算负载指标;根据所述预设时间间隔持续对所述负载指标进行更新。
具体的,所述负载比较模块12中所采用的计算公式为:
R(Ti)=k1*R(Bi)+k2*R(Si)+k3*R(IOi)+k4*R(Ci)+k5*R(Mi);
其中,i=0,1,...,n-1,
Figure BDA0002243260340000111
R(Ti)为所述负载指标,R(Bi)为网络带宽使用率,R(Si)为服务器存储空间的使用率,R(IOi)是服务器磁盘I/O的访问率,R(Ci)为CPU的利用率,R(Mi)为内存利用率,k为各项指标的权重;
R(Bi)=Dr/Dt
其中,Dr为当前所述服务节点的实际使用带宽,Dt为当前所述服务节点的总带宽;
R(Si)=Sr/St
其中,Sr为当前所述服务节点已经使用的存储空间大小,St为当前所述服务节点的总存储空间大小;
R(IOi)=D(IO)r/D(IO)t
其中,D(IO)r为当前所述服务节点的实际I/O访问数据量,D(IO)t为当前所述服务节点总线上流过的最大I/O量;
Figure BDA0002243260340000112
其中,Tm1、Tm2为当前所述服务节点从开始运行一直至m1、m2时刻的累计运行时间与磁盘等待时间的差值;Tcpu1、Tcpu2为对应所述系统运行到m1、m2时刻的累计运行时间;
R(Mi)=Mr/Mt
其中,Mr为当前所述服务节点已使用的内存,Mt为当前所述服务节点总内存大小。
此外,本实施例中,所述负载比较模块12还用于:将所述负载状态进行广播,并当判断到所述负载状态满足离线条件时,判定对应所述服务节点为离线节点;控制所有所述服务节点进行前驱节点和后继节点的更新。
请求分发模块13,用于将所述用户请求分发到所述目标节点,以使所述目标节点对所述用户请求进行响应。
本实施例,通过采用哈希环的方式进行集群的维护管理,有效的利用了去中心思想将用户流量分发到集群中,提高了负载均衡效率,防止了由于移动终端自身性能瓶颈所导致的负载均衡效率受限制的现象,通过对所有所述服务节点的所述负载状态进行比较的设计,以提高所述目标节点获取的准确性,进而保障了所述用户请求的处理效率。
实施例四
请参阅图5,是本发明第四实施例提供的移动终端101,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端101执行上述的去中心化集群负载均衡方法。
本实施例还提供了一种存储介质,其上存储有上述移动终端101中所使用的计算机程序,该程序在执行时,包括如下步骤:
搭建集群环境,并在所述集群环境构建哈希环,所述哈希环上设有多个服务节点,每个所述服务节点均对应一服务器;
对所述哈希环上的每个所述服务节点的路由表进行初始化;
根据预设时间间隔持续获取每个所述服务节点的负载状态,并当接收到用户请求时,对所有所述服务节点的所述负载状态进行比较,以获取负载最低的目标节点;
将所述用户请求分发到所述目标节点,以使所述目标节点对所述用户请求进行响应。所述的存储介质,如:ROM/RAM、磁碟、光盘等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将存储装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施方式中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
本领域技术人员可以理解,图4中示出的组成结构并不构成对本发明的去中心化集群负载均衡系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,而图1-2中的去中心化集群负载均衡方法亦采用图4中所示的更多或更少的部件,或者组合某些部件,或者不同的部件布置来实现。本发明所称的单元、模块等是指一种能够被所述目标去中心化集群负载均衡系统中的处理器(图未示)所执行并功能够完成特定功能的一系列计算机程序,其均可存储于所述目标去中心化集群负载均衡系统的存储设备(图未示)内。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种去中心化集群负载均衡方法,其特征在于,所述方法包括:
搭建集群环境,并在所述集群环境构建哈希环,所述哈希环上设有多个服务节点,每个所述服务节点均对应一服务器;
对所述哈希环上的每个所述服务节点的路由表进行初始化;
根据预设时间间隔持续获取每个所述服务节点的负载状态,并当接收到用户请求时,对所有所述服务节点的所述负载状态进行比较,以获取负载最低的目标节点;
将所述用户请求分发到所述目标节点,以使所述目标节点对所述用户请求进行响应;
所述在所述集群环境构建哈希环包括:
创建服务节点的首节点,并以所述首节点为第一个环节点,生成所述哈希环;
创建服务节点的新节点,将创建的各新节点逐个加入所述哈希环,并在各新节点加入所述哈希环过程中,根据所述哈希环上已有节点的路由表,确定各新节点的后继节点;
针对各新节点,检测确定到的后继节点是否是当前后继节点;
若不是,则根据所述当前后继节点更新所述新节点的后继关系,并对确定到的后继节点进行前驱节点更新;
所述根据预设时间间隔持续获取每个所述服务节点的负载状态的步骤之后,所述方法还包括:
将所述负载状态进行广播,并当判断到所述负载状态满足离线条件时,判定对应所述服务节点为离线节点;
控制所有所述服务节点进行前驱节点和后继节点的更新。
2.如权利要求1所述的去中心化集群负载均衡方法,其特征在于,所述根据预设时间间隔持续获取每个所述服务节点的负载状态的步骤包括:
分别获取每个所述服务节点对应所述服务器的系统和硬件信息,并根据所述系统和所述硬件信息计算负载指标;
根据所述预设时间间隔持续对所述负载指标进行更新。
3.如权利要求2所述的去中心化集群负载均衡方法,其特征在于,所述根据所述系统和所述硬件信息计算负载指标所采用的计算公式为:
R(Ti)=k1*R(Bi)+k2*R(Si)+k3*R(IOi)+k4*R(Ci)+k5*R(Mi);
其中,i=0,1,...,n-1,
Figure FDA0003617232040000021
R(Ti)为所述负载指标,R(Bi)为网络带宽使用率,R(Si)为服务器存储空间的使用率,R(IOi)是服务器磁盘I/O的访问率,R(Ci)为CPU的利用率,R(Mi)为内存利用率,k为各项指标的权重。
4.如权利要求3所述的去中心化集群负载均衡方法,其特征在于,所述根据所述系统和所述硬件信息计算负载指标所采用的计算公式还包括:
R(Bi)=Dr/Dt
其中,Dr为当前所述服务节点的实际使用带宽,Dt为当前所述服务节点的总带宽;
R(Si)=Sr/St
其中,Sr为当前所述服务节点已经使用的存储空间大小,St为当前所述服务节点的总存储空间大小;
R(IOi)=D(IO)r/D(IO)t
其中,D(IO)r为当前所述服务节点的实际I/O访问数据量,D(IO)t为当前所述服务节点总线上流过的最大I/O量;
Figure FDA0003617232040000022
其中,Tm1、Tm2为当前所述服务节点从开始运行一直至m1、m2时刻的累计运行时间与磁盘等待时间的差值;Tcpu1、Tcpu2为对应所述系统运行到m1、m2时刻的累计运行时间;
R(Mi)=Mr/Mt
其中,Mr为当前所述服务节点已使用的内存,Mt为当前所述服务节点总内存大小。
5.如权利要求1所述的去中心化集群负载均衡方法,其特征在于,所述对所述哈希环上的每个所述服务节点的路由表进行初始化的步骤包括:
对每个所述服务节点对应的所述路由表中的前驱节点和后继节点对应进行更新。
6.一种去中心化集群负载均衡系统,其特征在于,所述系统包括:
环境构建模块,用于搭建集群环境,并在所述集群环境构建哈希环,所述哈希环上设有多个服务节点,每个所述服务节点均对应一服务器;
所述环境构建模块还用于:创建服务节点的首节点,并以所述首节点为第一个环节点,生成所述哈希环;
创建服务节点的新节点,将创建的各新节点逐个加入所述哈希环,并在各新节点加入所述哈希环过程中,根据所述哈希环上已有节点的路由表,确定各新节点的后继节点;
针对各新节点,检测确定到的后继节点是否是当前后继节点;
若不是,则根据所述当前后继节点更新所述新节点的后继关系,并对确定到的后继节点进行前驱节点更新;
初始化模块,用于对所述哈希环上的每个所述服务节点的路由表进行初始化;
负载比较模块,用于根据预设时间间隔持续获取每个所述服务节点的负载状态,并当接收到用户请求时,对所有所述服务节点的所述负载状态进行比较,以获取负载最低的目标节点;
请求分发模块,用于将所述用户请求分发到所述目标节点,以使所述目标节点对所述用户请求进行响应;
所述负载比较模块还用于:将所述负载状态进行广播,并当判断到所述负载状态满足离线条件时,判定对应所述服务节点为离线节点;控制所有所述服务节点进行前驱节点和后继节点的更新。
7.如权利要求6所述的去中心化集群负载均衡系统,其特征在于,所述负载比较模块还用于:
分别获取每个所述服务节点对应所述服务器的系统和硬件信息,并根据所述系统和所述硬件信息计算负载指标;
根据所述预设时间间隔持续对所述负载指标进行更新。
8.一种移动终端,其特征在于,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端执行根据权利要求1至5任一项所述的去中心化集群负载均衡方法。
9.一种存储介质,其特征在于,其存储有权利要求8所述的移动终端中所使用的计算机程序,该计算机程序被处理器执行时实现权利要求1至5任一项所述的去中心化集群负载均衡方法的步骤。
CN201911007767.6A 2019-10-22 2019-10-22 去中心化集群负载均衡方法、系统、移动终端及存储介质 Active CN110798517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911007767.6A CN110798517B (zh) 2019-10-22 2019-10-22 去中心化集群负载均衡方法、系统、移动终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911007767.6A CN110798517B (zh) 2019-10-22 2019-10-22 去中心化集群负载均衡方法、系统、移动终端及存储介质

Publications (2)

Publication Number Publication Date
CN110798517A CN110798517A (zh) 2020-02-14
CN110798517B true CN110798517B (zh) 2022-08-05

Family

ID=69440924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911007767.6A Active CN110798517B (zh) 2019-10-22 2019-10-22 去中心化集群负载均衡方法、系统、移动终端及存储介质

Country Status (1)

Country Link
CN (1) CN110798517B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338682B (zh) * 2020-02-27 2023-05-09 上海百秋新网商数字科技有限公司 基于负载的持续升级系统服务方法
CN111694663B (zh) * 2020-06-02 2023-11-03 中国工商银行股份有限公司 服务器集群的负载均衡方法、装置及系统
CN114070847B (zh) * 2020-07-27 2024-01-23 腾讯科技(深圳)有限公司 服务器的限流方法、装置、设备及存储介质
CN113031976B (zh) * 2021-03-26 2023-09-29 山东英信计算机技术有限公司 一种基于Ambari的集群容量管理方法、装置及介质
CN113326100B (zh) * 2021-06-29 2024-04-09 深信服科技股份有限公司 一种集群管理方法、装置、设备及计算机存储介质
CN114205361B (zh) * 2021-12-08 2023-10-27 聚好看科技股份有限公司 一种负载均衡方法以及服务器
CN116471273B (zh) * 2023-04-18 2023-10-20 广州智臣信息科技有限公司 一种跨网数据交换系统的负载均衡实现方法
CN116893900B (zh) * 2023-07-19 2024-07-19 合芯科技有限公司 集群计算压力负载均衡方法、系统、设备及ic设计平台

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320771A (zh) * 2015-10-31 2016-02-10 南京南瑞继保电气有限公司 基于哈希环的时间序列数据库服务集群的实现方法与系统
CN107197035A (zh) * 2017-06-21 2017-09-22 中国民航大学 一种基于一致性哈希算法的亲和性动态负载均衡方法
CN108199909A (zh) * 2018-03-30 2018-06-22 浙江网新恒天软件有限公司 一种基于一致性哈希的高可用负载均衡系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860316B2 (en) * 2014-09-19 2018-01-02 Facebook, Inc. Routing network traffic based on social information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320771A (zh) * 2015-10-31 2016-02-10 南京南瑞继保电气有限公司 基于哈希环的时间序列数据库服务集群的实现方法与系统
CN107197035A (zh) * 2017-06-21 2017-09-22 中国民航大学 一种基于一致性哈希算法的亲和性动态负载均衡方法
CN108199909A (zh) * 2018-03-30 2018-06-22 浙江网新恒天软件有限公司 一种基于一致性哈希的高可用负载均衡系统

Also Published As

Publication number Publication date
CN110798517A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN110798517B (zh) 去中心化集群负载均衡方法、系统、移动终端及存储介质
US10747780B2 (en) Blockchain-based data processing method and device
Chen et al. Minimizing inter-server communications by exploiting self-similarity in online social networks
Xu et al. Stela: Enabling stream processing systems to scale-in and scale-out on-demand
Lakshmanan et al. Placement strategies for internet-scale data stream systems
Zhang et al. HSDC: A highly scalable data center network architecture for greater incremental scalability
Ranjan Modeling and simulation in performance optimization of big data processing frameworks
Hassanzadeh-Nazarabadi et al. Decentralized utility-and locality-aware replication for heterogeneous DHT-based P2P cloud storage systems
Rathore Performance of hybrid load balancing algorithm in distributed web server system
CN117149445B (zh) 一种跨集群负载均衡方法及装置、设备及存储介质
Liu et al. Fattreesim: Modeling large-scale fat-tree networks for hpc systems and data centers using parallel and discrete event simulation
Bhowmik et al. Distributed control plane for software-defined networks: A case study using event-based middleware
Caneill et al. Locality-aware routing in stateful streaming applications
CN117081983B (zh) 数据传输方法及装置
Lai et al. A scalable multi-attribute hybrid overlay for range queries on the cloud
Katsaros et al. CDNs content outsourcing via generalized communities
CN116962419A (zh) 服务器分配策略的生成方法及装置、电子设备及存储介质
Gu et al. Optimization of service addition in multilevel index model for edge computing
Wang et al. Virtual network embedding with pre‐transformation and incentive convergence mechanism
CN113934767A (zh) 一种数据处理的方法及装置、计算机设备和存储介质
CN111106974B (zh) 一种测试无损网络性能的方法和装置
CN112783673A (zh) 一种调用链的确定方法、装置、计算机设备及存储介质
Fu et al. Random choices for churn resilient load balancing in peer-to-peer networks
CN110597809A (zh) 一种支持树状数据结构的一致性算法系统及其实现方法
CN117176728B (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