CN114338695B - 基于多副本的领导者选举方法、装置、设备及存储介质 - Google Patents

基于多副本的领导者选举方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114338695B
CN114338695B CN202210228188.XA CN202210228188A CN114338695B CN 114338695 B CN114338695 B CN 114338695B CN 202210228188 A CN202210228188 A CN 202210228188A CN 114338695 B CN114338695 B CN 114338695B
Authority
CN
China
Prior art keywords
application
leader
copy
copies
target
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
CN202210228188.XA
Other languages
English (en)
Other versions
CN114338695A (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 Ailing Network Co ltd
Original Assignee
Shenzhen Ailing Network 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 Ailing Network Co ltd filed Critical Shenzhen Ailing Network Co ltd
Priority to CN202210228188.XA priority Critical patent/CN114338695B/zh
Publication of CN114338695A publication Critical patent/CN114338695A/zh
Application granted granted Critical
Publication of CN114338695B publication Critical patent/CN114338695B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种基于多副本的领导者选举方法、装置、设备及存储介质,涉及通信技术领域。该方法可以应用于目标集群,包括:通过各第一应用副本获取当前时刻的多个资源观察向量;根据当前时刻的多个资源观察向量和预设预测器,获取当前时刻各第一应用副本对应的预测提交延迟总和;根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个第一应用副本中确定第一目标领导者应用副本,实现了可以根据预设预测器以及当前时刻的多个资源观察向量,快速获取当前时刻各第一应用副本对应的预测提交延迟总和,进而可以在当前时刻多个第一应用副本中快速选举出第一目标领导者应用副本,具有选举方式简单、选举效率高的特点。

Description

基于多副本的领导者选举方法、装置、设备及存储介质
技术领域
本申请涉及通信技术领域,特别涉及一种基于多副本的领导者选举方法、装置、设备及存储介质。
背景技术
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一***的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。
现有的,为了增强集群的可靠性,集群中的应用程序一般以多副本形式部署以容忍故障停机或分布式故障。其中,为了保证多应用副本中数据的一致性,往往基于Raft算法确定多个应用副本中的领导者,以便基于该应用领导者可以确保在有序日志中对客户端请求进行排序进而可以将该请求转发到其他应用副本中。
但由于Raft算法比较复杂,因此,基于Raft算法确定多个应用副本中的领导者时,往往存在选举效率较低的问题。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种基于多副本的领导者选举方法、装置、设备及存储介质,可以提高选举效率。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本发明提供一种基于多副本的领导者选举方法,应用于目标集群,所述目标集群包括:多个工作节点,所述工作节点中包括目标类应用程序对应的多个第一应用副本,所述方法包括:
通过各第一应用副本获取当前时刻的多个资源观察向量,每个所述资源观察向量包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间;
根据当前时刻的多个所述资源观察向量和预设预测器,获取当前时刻各所述第一应用副本对应的预测提交延迟总和,其中,所述预设预测器用于预测获取各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟;
根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定第一目标领导者应用副本。
在可选的实施方式中,所述根据当前时刻的多个所述资源观察向量和预设预测器,获取当前时刻各所述第一应用副本对应的预测提交延迟总和之前,所述方法还包括:
获取历史任期领导者应用副本对应的历史任期时间段内每个所述第一应用副本的资源观察向量和每个所述第一应用副本对应的提交延迟时间,并将多个所述第一应用副本作为多个训练样本,所述提交延迟时间用于表征所述第一应用副本向历史任期领导者应用副本转发客户端发送的请求消息的延迟时间;
根据多个所述训练样本,训练获取所述预测器。
在可选的实施方式中,所述工作节点中还包括:其他类应用程序对应的多个第二应用副本,所述根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定第一目标领导者应用副本,包括:
根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定至少一个第一候选领导者应用副本;
根据至少一个所述第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本,所述预设领导者平衡分布条件用于表征工作节点中领导者应用副本的最大数量。
在可选的实施方式中,所述目标集群配置有领导者管理对象,所述领导者管理对象包括:各工作节点上领导者应用副本的数量,所述根据至少一个所述第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本,包括:
通过所述领导者管理对象获取当前时刻各工作节点上领导者应用副本的数量;
根据当前时刻各工作节点上领导者应用副本的数量,获取满足预设领导者平衡分布条件的目标工作节点;
根据至少一个所述第一候选领导者应用副本和所述目标工作节点,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本。
在可选的实施方式中,各类应用程序对应的多个应用副本被配置为对应一个副本管理对象,所述副本管理对象包括所对应的多个应用副本的领导者记录信息,所述领导者记录信息包括:领导者应用副本所在的工作节点标识和更新时间,所述方法还包括:
通过所述副本管理对象获取各类应用副本对应的领导者记录信息;
根据各类应用副本对应的领导者记录信息,获取各工作节点上领导者应用副本的数量并记录至所述领导者管理对象中。
在可选的实施方式中,所述方法还包括:
分别获取目标集群中领导者应用副本的第一数量和工作节点的第二数量;
根据所述第一数量和所述第二数量,确定所述预设领导者平衡分布条件。
在可选的实施方式中,每个所述资源观察向量还包括:所对应的第一应用副本的CPU资源占用率,和/或,所对应的第一应用副本的RAM资源占用率。
第二方面,本发明提供一种基于多副本的领导者选举装置,应用于目标集群,所述目标集群包括:多个工作节点,所述工作节点中包括目标类应用程序对应的多个第一应用副本,所述装置包括:
第一获取模块,用于通过各第一应用副本获取当前时刻的多个资源观察向量,每个所述资源观察向量包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间;
第二获取模块,用于根据当前时刻的多个所述资源观察向量和预设预测器,获取当前时刻各所述第一应用副本对应的预测提交延迟总和,其中,所述预设预测器用于预测获取各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟;
确定模块,用于根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定第一目标领导者应用副本。
在可选的实施方式中,所述第二获取模块,还用于获取历史任期领导者应用副本对应的历史任期时间段内每个所述第一应用副本的资源观察向量和每个所述第一应用副本对应的提交延迟时间,并将多个所述第一应用副本作为多个训练样本,所述提交延迟时间用于表征所述第一应用副本向历史任期领导者应用副本转发客户端发送的请求消息的延迟时间;
根据多个所述训练样本,训练获取所述预测器。
在可选的实施方式中,所述工作节点中还包括:其他类应用程序对应的多个第二应用副本,所述确定模块,具体用于根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定至少一个第一候选领导者应用副本;
根据至少一个所述第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本,所述预设领导者平衡分布条件用于表征工作节点中领导者应用副本的最大数量。
在可选的实施方式中,所述目标集群配置有领导者管理对象,所述领导者管理对象包括:各工作节点上领导者应用副本的数量,所述确定模块,具体用于,通过所述领导者管理对象获取当前时刻各工作节点上领导者应用副本的数量;
根据当前时刻各工作节点上领导者应用副本的数量,获取满足预设领导者平衡分布条件的目标工作节点;
根据至少一个所述第一候选领导者应用副本和所述目标工作节点,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本。
在可选的实施方式中,各类应用程序对应的多个应用副本被配置为对应一个副本管理对象,所述副本管理对象包括所对应的多个应用副本的领导者记录信息,所述领导者记录信息包括:领导者应用副本所在的工作节点标识和更新时间,所述装置还包括:记录模块,用于通过所述副本管理对象获取各类应用副本对应的领导者记录信息;
根据各类应用副本对应的领导者记录信息,获取各工作节点上领导者应用副本的数量并记录至所述领导者管理对象中。
在可选的实施方式中,所述确定模块,还用于分别获取目标集群中领导者应用副本的第一数量和工作节点的第二数量;
根据所述第一数量和所述第二数量,确定所述预设领导者平衡分布条件。
在可选的实施方式中,每个所述资源观察向量还包括:所对应的第一应用副本的CPU资源占用率,和/或,所对应的第一应用副本的RAM资源占用率。
第三方面,本发明提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如前述实施方式任一所述基于多副本的领导者选举方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如前述实施方式任一所述基于多副本的领导者选举方法的步骤。
本申请的有益效果是:
本申请实施例提供的基于多副本的领导者选举方法、装置、设备及存储介质,可以应用于目标集群,该目标集群可以包括多个工作节点,该工作节点中可以包括目标类应用程序对应的多个第一应用副本,该方法包括:通过各第一应用副本获取当前时刻的多个资源观察向量,每个资源观察向量包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间;根据当前时刻的多个资源观察向量和预设预测器,获取当前时刻各第一应用副本对应的预测提交延迟总和,其中,预设预测器用于预测获取各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟;根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个第一应用副本中确定第一目标领导者应用副本,实现了可以根据预设预测器以及当前时刻的多个资源观察向量,快速获取当前时刻各第一应用副本对应的预测提交延迟总和,进而可以在当前时刻多个第一应用副本中快速选举出第一目标领导者应用副本,具有选举方式简单、选举效率高的特点。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种基于多副本的领导者选举方法的流程示意图;
图2为本申请实施例提供的另一种基于多副本的领导者选举方法的流程示意图;
图3为本申请实施例提供的一种集群的架构示意图;
图4为本申请实施例提供的又一种基于多副本的领导者选举方法的流程示意图;
图5为本申请实施例提供的另一种基于多副本的领导者选举方法的流程示意图;
图6为本申请实施例提供的又一种基于多副本的领导者选举方法的流程示意图;
图7为本申请实施例提供的另一种基于多副本的领导者选举方法的流程示意图;
图8为本申请实施例提供的一种基于多副本的领导者选举装置的功能模块示意图;
图9为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
现有技术中,往往基于Raft算法确定多个应用副本中的领导者,但由于Raft算法比较复杂,具体来说,Raft算法中统一的领导者选举可能会导致领导者的放置速度缓慢或效率低下,进而导致同步过程减速并导致客户端请求的响应时间损失。在地理隔离的Raft部署中,领导者效率低下的问题也更加严重。
因此,现有基于多副本的领导者选举方法存在选举效率较低的问题。
有鉴于此,本申请提供一种基于多副本的领导者选举方法,应用该方法,可以提高多副本中领导者副本的选举效率。
图1为本申请实施例提供的一种基于多副本的领导者选举方法的流程示意图,该方法可以应用于目标集群,可选地,该目标集群可以是Kafka集群、Kubernetes集群等,在此不作限定。该目标集群可以包括:多个工作节点,该工作节点中可以包括目标类应用程序对应的多个第一应用副本,其中,每个第一应用副本可以理解为目标类应用程序的完整拷贝,用以容忍故障停机或分布式故障。可选地,该目标类应用程序可以为游戏应用程序、购物应用程序、社交应用程序等,在此不作限定。如图1所示,该方法可以包括:
S101、通过各第一应用副本获取当前时刻的多个资源观察向量,每个资源观察向量包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间。
其中,各第一应用副本可以被配置为可定期地向其他第一应用副本发送预设信号以获取本副本与其他第一应用副本之间的通信往返时间(Round-Trip Time,RTT),根据该通信往返时间可以生成资源观察向量,其中,第一应用副本
Figure F_220228140645989_989698001
所对应的资源观察向量
Figure F_220228140646067_067905002
可以记为
Figure F_220228140646146_146478003
,其中,
Figure F_220228140646235_235347004
表示第一应用副本
Figure F_220228140646329_329111005
和第一应用副本集合
Figure F_220228140646408_408665006
中应用副本
Figure F_220228140646471_471160007
之间的通信往返时间,
Figure F_220228140646727_727521008
Figure F_220228140646792_792436009
基于该说明,在一些实施例中,各第一应用副本可以获取当前时刻的资源观察向量,并向目标集群发送该资源观察向量,当然,在一些实施例中,目标集群也可以主动向各第一应用副本获取对应的资源观察向量,在此不作限定。可选地,目标集群可以将获取的资源观察向量存储在预设队列中。
S102、根据当前时刻的多个资源观察向量和预设预测器,获取当前时刻各第一应用副本对应的预测提交延迟总和。
其中,预设预测器用于预测获取各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟。也即,根据当前时刻的多个资源观察向量和各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟,可以获取当前时刻各第一应用副本对应的预测提交延迟总和。其中,当前时刻各第一应用副本对应的预测提交延迟总和可以表征当前时刻各第一应用副本的通信状态,可以理解的是,当前时刻,若某第一应用副本对应的预测提交延迟总和较低,说明该第一应用副本的通信状态较好,否则,说明该第一应用副本的通信状态较差。
S103、根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个第一应用副本中确定第一目标领导者应用副本。
其中,当前时刻各第一应用副本对应的预测提交延迟总和,在一定程度上可以表征各第一应用副本成为多个第一应用副本中领导者的几率,其也可以看作各第一应用副本作为第一目标领导者应用副本的适应度分数,其中,各第一应用副本对应的预测提交延迟总和与其成为多个第一应用副本中领导者的几率可以成反比,也即各第一应用副本对应的预测提交延迟总和越低,则其成为多个第一应用副本中领导者的几率越高。
基于上述说明,可以理解的是,那么此时可以根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个第一应用副本中确定第一目标领导者应用副本,进而基于该第一目标领导者应用副本可以确保在有序日志中对客户端请求进行排序以将该请求转发到其他非目标领导者第一应用副本中,保证多个第一应用副本中数据的一致性,以容忍故障停机或分布式故障,提高目标类应用程序的可靠性。此外,还可以看出,本申请所提供的领导者选举方法具有选举简单的特点,相较于现有技术中基于Raft算法确定多个应用副本中领导者的方法,可以提高选举效率。
综上,本申请实施例提供的基于多副本的领导者选举方法,可以应用于目标集群,该目标集群可以包括多个工作节点,该工作节点中可以包括目标类应用程序对应的多个第一应用副本,该方法包括:通过各第一应用副本获取当前时刻的多个资源观察向量,每个资源观察向量包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间;根据当前时刻的多个资源观察向量和预设预测器,获取当前时刻各第一应用副本对应的预测提交延迟总和,其中,预设预测器用于预测获取各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟;根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个第一应用副本中确定第一目标领导者应用副本,实现了可以根据预设预测器以及当前时刻的多个资源观察向量,快速获取当前时刻各第一应用副本对应的预测提交延迟总和,进而可以在当前时刻多个第一应用副本中快速选举出第一目标领导者应用副本,具有选举方式简单、选举效率高的特点。
图2为本申请实施例提供的另一种基于多副本的领导者选举方法的流程示意图。可选地,如图2所示,根据当前时刻的多个资源观察向量和预设预测器,获取当前时刻各第一应用副本对应的预测提交延迟总和之前,上述方法还包括:
S201、获取历史任期领导者应用副本对应的历史任期时间段内每个第一应用副本的资源观察向量和每个第一应用副本对应的提交延迟时间,并将多个第一应用副本作为多个训练样本。
其中,提交延迟时间用于表征第一应用副本向历史任期领导者应用副本转发客户端发送的请求消息的延迟时间。
每个第一应用副本对应的提交延迟时间可以参见下述方式获取:其中,以当前时刻为参考时间,历史任期领导者应用副本对应的历史任期时间段内,与各第一应用副本进行通信的应用客户端会将本端的请求消息传输到距离其最近的第一应用副本中,由该距离其最近的第一应用副本记录请求消息到达的时间戳,并将该请求消息转发提交给历史任期领导者应用副本,记录提交的时间戳,此时,提交的时间戳与请求消息到达的时间戳之间的时间延迟则可以称为提交延迟时间,可选地,在一些实施例中,上述距离其最近的第一应用副本也可以称为源应用副本,在此不作限定。历史时间段内每个第一应用副本的资源观察向量的获取方式,可参见上述当前时刻各第一应用副本的资源观察向量的获取方式,在此不再赘述。
基于上述说明,在获取到历史任期领导者应用副本对应的历史任期时间段内,多个第一应用副本中每个第一应用副本的资源观察向量和每个第一应用副本对应的提交延迟时间之后,则可以将该多个第一应用副本作为多个训练样本。
可选地,在一些实施例中,多个训练样本可以用如下公式表示:
Figure F_220228140646886_886752010
Figure F_220228140646981_981394011
。其中,R1表示训练样本,x表示多个训练样本对应的资源观察向量集合,
Figure F_220228140647044_044420012
为历史任期领导者应用副本,
Figure F_220228140647122_122542013
表示第一应用副本
Figure F_220228140647203_203135014
与历史任期领导者应用副本
Figure F_220228140647281_281256015
的通信往返时间,y表示多个训练样本对应的提交延迟时间集合,
Figure F_220228140647343_343737016
表示第一应用副本
Figure F_220228140647423_423342017
向历史任期领导者应用副本
Figure F_220228140647501_501472018
转发客户端发送的请求消息的延迟时间。
S202、根据多个训练样本,训练获取预测器。
可以看出,所获取的多个训练样本可以包括历史任期领导者应用副本对应的历史任期时间段内的多个第一应用副本,每个应用副本可以标注有资源观察向量和提交延迟时间,那么此时根据该多个训练样本可以训练获取预测器。可以理解的是,所训练获取的预测器可以根据待预测第一应用副本对应的资源观察向量,预测获取待预测第一应用副本向其对应的当前任期领导者应用副本发起请求的预测提交延迟。
可选地,在一些实施例中,可以采用普通最小二乘法(ordinary least squares,OLS)对该多个训练样本进行训练,实现可以基于最小化误差的平方和的思想训练得到预测器。当前具体训练方式并不以此为限。
其中,需要说明的是,为了提高预测器的预测结果的准确性,可选地,可以根据预设时间间隔对该多个训练样本进行更新,进而根据更新后的多个训练样本,可以对预测器进行更新,如此,可以提高预测结果的准确性。
在一些实施例中,基于上述说明,上述根据当前时刻的多个资源观察向量和预设预测器,获取当前时刻各第一应用副本对应的预测提交延迟总和的过程可以参见下述的公式完成:
Figure F_220228140647580_580548019
,其中,
Figure F_220228140647659_659188020
表示任意时间
Figure F_220228140647721_721667021
第一应用副本
Figure F_220228140647799_799781022
对应的预测提交延迟总和,
Figure F_220228140647877_877939023
表示第一应用副本
Figure F_220228140647940_940424024
向历史任期领导者应用副本发起请求的预测提交延迟,
Figure F_220228140648020_020553025
表示第一应用副本集合。
图3为本申请实施例提供的一种集群的架构示意图。如图3所示,集群中可以包括第一工作节点Node1和第二工作节点Node2,其中,第一工作节点Node1和第二工作节点Node2分别运行有第一类应用程序APP1对应的第一应用副本、第二类应用程序APP2对应的第二应用副本。其中,若第一类应用程序APP1为目标类应用程序,参见上述说明可知,应用本申请实施例,可以在第一工作节点Node1和第二工作节点Node2中选择快速选举中第一目标领导者应用副本,如图3所示,在一些实施例中,可以确定运行在第一工作节点Node1上的第一应用副本为第一目标领导者应用副本(Leader),可选地,此时运行在第二工作节点Node1上的第一应用副本可以称为跟随者应用副本(Follower)。
图4为本申请实施例提供的又一种基于多副本的领导者选举方法的流程示意图。结合上述图3可知,上述工作节点中还包括:其他类应用程序对应的多个第二应用副本,比如,第二类应用程序APP2对应的第二应用副本。如图4所示,上述根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个第一应用副本中确定第一目标领导者应用副本的步骤,可以包括:
S301、根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个第一应用副本中确定至少一个第一候选领导者应用副本。
参见上述说明,在确定了当前时刻各第一应用副本对应的预测提交延迟总和之后,可以对各预测提交延迟总和进行排序(升序或降序),获取排序列表,根据排序列表,在当前时刻多个第一应用副本中确定第一候选领导者应用副本。可选地,具体确定时,可以获取排序预测提交延迟总和较低的多个第一应用副本作为第一候选领导者应用副本,以升序为例,可以获取排序在前的W个第一应用副本作为第一候选领导者应用副本,其中,W的取值可以为3、5等,在此不作限定。
S302、根据至少一个第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个第一候选领导者应用副本中确定第一目标领导者应用副本。
其中,预设领导者平衡分布条件用于表征工作节点中领导者应用副本的最大数量。通过该预设领导者平衡分布条件可以看出,其可以平衡各工作节点中领导者应用副本Leader的分布,防止领导者应用副本在单个工作节点上发生堆积。
可选地,具体进行确定时,可以根据预设领导者平衡分布条件,在至少一个第一候选领导者应用副本中筛选满足预设领导者平衡分布条件的候选领导者应用副本作为第一目标领导者应用副本。在一些实施例中,若满足预设领导者平衡分布条件的候选领导者应用副本包括多个,可以选择其中的任一个作为第一目标领导者应用副本,又或者,可以根据预设选择规则确定第一目标领导者应用副本。应用本申请实施例,可以避免多类应用程序对应的多个目标领导者应用副本集中在同一工作节点上而导致目标集群的运行性能下降的问题,此外,还可以降低由于网络拥塞导致目标集群的响应时间较长的问题的发生,保证目标集群的运行性能。
图5为本申请实施例提供的另一种基于多副本的领导者选举方法的流程示意图。可选地,参见上述图3,上述目标集群还配置有领导者管理对象(Leader ManagementEndPoint,LEMP),该领导者管理对象可以包括:各工作节点上领导者应用副本的数量。在一些实施例中,领导者管理对象可以以配置文件的形式对目标集群进行配置。如图5所示,上述根据至少一个第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个第一候选领导者应用副本中确定第一目标领导者应用副本的步骤,可以包括:
S401、通过领导者管理对象获取当前时刻各工作节点上领导者应用副本的数量。
S402、根据当前时刻各工作节点上领导者应用副本的数量,获取满足预设领导者平衡分布条件的目标工作节点。
S403、根据至少一个第一候选领导者应用副本和目标工作节点,在至少一个第一候选领导者应用副本中确定第一目标领导者应用副本。
其中,领导者管理对象所存储的各工作节点上领导者应用副本的数量可以是实时更新的,也即若确定目标集群中任一工作节点上的领导者应用副本的信息发生变化时,可以生成更新消息,根据该更新消息对领导者管理对象进行更新,如此,可以保证领导者管理对象的实时性。
基于上述说明,通过领导者管理对象获取到当前时刻各工作节点上领导者应用副本的数量之后,则可以根据该数量,在多个工作节点中筛选出满足预设领导者平衡分布条件的目标工作节点,进而根据该目标工作节点和上述确定的至少一个第一候选领导者应用副本,可以确定第一目标领导者应用副本。当然,需要说明的是,若某第一候选领导者应用副本所在的工作节点不满足预设领导者平衡分布条件,那么对应第一候选领导者应用副本,其仍然是一个副本,可以通过重复上述相关过程定期尝试获得领导权。
图6为本申请实施例提供的又一种基于多副本的领导者选举方法的流程示意图。其中,参见上述图3,上述各类应用程序对应的多个应用副本被配置为对应一个副本管理对象(EndPoint,EP),该副本管理对象可以包括所对应的多个应用副本的领导者记录信息,该领导者记录信息可以包括:领导者应用副本(也即多个应用副本对的领导者应用副本)所在的工作节点标识和更新时间。在一些实施例中,各副本管理对象可以以配置文件的形式对其对应的多个应用副本进行管理。如图6所示,上述方法还包括:
S501、通过副本管理对象获取各类应用副本对应的领导者记录信息。
S502、根据各类应用副本对应的领导者记录信息,获取各工作节点上领导者应用副本的数量并记录至领导者管理对象中。
基于上述说明可以理解的是,通过副本管理对象获取到各类应用副本对应的领导者记录信息之后,则可以根据各领导者记录信息中的更新时间,获取最新更新时间对应的各工作节点上领导者应用副本的数量,并将所获取最新更新时间对应的各工作节点上领导者应用副本的数量记录至领导者管理对象中,如此,可以保证领导者管理对象所存储的各工作节点上领导者应用副本的数量是实时更新的。
可选地,在一些实施例中,若确定各类应用程序对应的多个应用副本未被配置副本管理对象,可选地,可以采用副本管理对象对应的配置文件对其进行配置。
图7为本申请实施例提供的又一种基于多副本的领导者选举方法的流程示意图。可选地,如图7所示,上述方法还包括:
S601、分别获取目标集群中领导者应用副本的第一数量和工作节点的第二数量。
S602、根据第一数量和第二数量,确定预设领导者平衡分布条件。
可选地,目标集群中领导者应用副本的第一数量和工作节点的第二数量可以通过预设配置文件获取,当然,具体获取方式并不以此为限。比如,也可以通过目标集群中的应用程序接口(Application Programming Interface,API)检索工作节点的数量。
在一些实施实施例中,根据第一数量和第二数量,确定的预设领导者平衡分布条件可以用如下公式表示:
Figure F_220228140648114_114263026
,其中,
Figure F_220228140648193_193307027
为目标集群中领导者应用副本的第一数量,
Figure F_220228140648256_256337028
为目标集群中工作节点的第二数量,
Figure F_220228140648334_334486029
为各工作节点中领导者应用副本的最大数量。当然,预设领导者平衡分布条件的表达公式并不以此为限,根据实际的应用场景可以灵活调整。
可选地,上述每个资源观察向量还包括:所对应的第一应用副本的CPU资源占用率,和/或,所对应的第一应用副本的RAM资源占用率。
参见前述的说明,也即每个资源观察向量可以包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间、所对应的第一应用副本的CPU资源占用率,和/或,所对应的第一应用副本的RAM资源占用率。当然,本申请在此并不限定每个资源观察向量中的具体内容,根据实际的应用场景可以灵活组合。
比如,第一应用副本
Figure F_220228140648398_398900030
所对应的资源观察向量
Figure F_220228140648477_477064031
可以记为
Figure F_220228140648539_539535032
,其中,
Figure F_220228140648620_620607033
表示第一应用副本
Figure F_220228140648713_713885034
对应的CPU资源占用率,
Figure F_220228140648807_807642035
表示第一应用副本
Figure F_220228140648901_901874036
对应的RAM资源占用率,关于其他参数可参见前述的相关说明,在此不再赘述。
当然,需要说明的是,根据实际的应用场景,每个训练样本对应的第一应用副本中的资源观察向量也可以包括所对应的第一应用副本的CPU资源占用率,和/或,所对应的第一应用副本的RAM资源占用率,在此不作限定。
可以看出,应用本申请实施例,实现了可以结合多种资源,在当前时刻多个第一应用副本中确定第一目标领导者应用副本,可以避免不平衡的资源分配导致目标集群的响应时间较长的问题,进一步保证目标集群的运行性能。
图8为本申请实施例提供的一种基于多副本的领导者选举装置的功能模块示意图,该装置可以是部署有前述目标集群的设备,该目标集群包括:多个工作节点,所述工作节点中包括目标类应用程序对应的多个第一应用副本,该装置基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容。如图8所示,该领导者选举装置100,可以包括:
第一获取模块110,用于通过各第一应用副本获取当前时刻的多个资源观察向量,每个所述资源观察向量包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间;
第二获取模块120,用于根据当前时刻的多个所述资源观察向量和预设预测器,获取当前时刻各所述第一应用副本对应的预测提交延迟总和,其中,所述预设预测器用于预测获取各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟;
确定模块130,用于根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定第一目标领导者应用副本。
在可选的实施方式中,所述第二获取模块120,还用于获取历史任期领导者应用副本对应的历史任期时间段内每个所述第一应用副本的资源观察向量和每个所述第一应用副本对应的提交延迟时间,并将多个所述第一应用副本作为多个训练样本,所述提交延迟时间用于表征所述第一应用副本向历史任期领导者应用副本转发客户端发送的请求消息的延迟时间;
根据多个所述训练样本,训练获取所述预测器。
在可选的实施方式中,所述工作节点中还包括:其他类应用程序对应的多个第二应用副本,所述确定模块130,具体用于根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定至少一个第一候选领导者应用副本;
根据至少一个所述第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本,所述预设领导者平衡分布条件用于表征工作节点中领导者应用副本的最大数量。
在可选的实施方式中,所述目标集群配置有领导者管理对象,所述领导者管理对象包括:各工作节点上领导者应用副本的数量,所述确定模块,具体用于,通过所述领导者管理对象获取当前时刻各工作节点上领导者应用副本的数量;
根据当前时刻各工作节点上领导者应用副本的数量,获取满足预设领导者平衡分布条件的目标工作节点;
根据至少一个所述第一候选领导者应用副本和所述目标工作节点,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本。
在可选的实施方式中,各类应用程序对应的多个应用副本被配置为对应一个副本管理对象,所述副本管理对象包括所对应的多个应用副本的领导者记录信息,所述领导者记录信息包括:领导者应用副本所在的工作节点标识和更新时间,所述装置还包括:记录模块,用于通过所述副本管理对象获取各类应用副本对应的领导者记录信息;
根据各类应用副本对应的领导者记录信息,获取各工作节点上领导者应用副本的数量并记录至所述领导者管理对象中。
在可选的实施方式中,所述确定模块130,还用于分别获取目标集群中领导者应用副本的第一数量和工作节点的第二数量;
根据所述第一数量和所述第二数量,确定所述预设领导者平衡分布条件。
在可选的实施方式中,每个所述资源观察向量还包括:所对应的第一应用副本的CPU资源占用率,和/或,所对应的第一应用副本的RAM资源占用率。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
图9为本申请实施例提供的一种电子设备结构示意图,该电子设备可以是上述的领导者选举装置。如图9所示,该电子设备可以包括:处理器210、存储介质220和总线230,存储介质220存储有处理器210可执行的机器可读指令,当电子设备运行时,处理器210与存储介质220之间通过总线230通信,处理器210执行机器可读指令,以执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (9)

1.一种基于多副本的领导者选举方法,其特征在于,应用于目标集群,所述目标集群包括:多个工作节点,所述工作节点中包括目标类应用程序对应的多个第一应用副本,所述方法包括:
通过各第一应用副本获取当前时刻的多个资源观察向量,每个所述资源观察向量包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间;
根据当前时刻的多个所述资源观察向量和预设预测器,获取当前时刻各所述第一应用副本对应的预测提交延迟总和,其中,所述预设预测器用于预测获取各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟;
根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定第一目标领导者应用副本;
所述工作节点中还包括:其他类应用程序对应的多个第二应用副本,所述根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定第一目标领导者应用副本,包括:
根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定至少一个第一候选领导者应用副本;
根据至少一个所述第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本,所述预设领导者平衡分布条件用于表征工作节点中领导者应用副本的最大数量。
2.根据权利要求1所述的方法,其特征在于,所述根据当前时刻的多个所述资源观察向量和预设预测器,获取当前时刻各所述第一应用副本对应的预测提交延迟总和之前,所述方法还包括:
获取历史任期领导者应用副本对应的历史任期时间段内每个所述第一应用副本的资源观察向量和每个所述第一应用副本对应的提交延迟时间,并将多个所述第一应用副本作为多个训练样本,所述提交延迟时间用于表征所述第一应用副本向历史任期领导者应用副本转发客户端发送的请求消息的延迟时间;
根据多个所述训练样本,训练获取所述预测器。
3.根据权利要求1所述的方法,其特征在于,所述目标集群配置有领导者管理对象,所述领导者管理对象包括:各工作节点上领导者应用副本的数量,所述根据至少一个所述第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本,包括:
通过所述领导者管理对象获取当前时刻各工作节点上领导者应用副本的数量;
根据当前时刻各工作节点上领导者应用副本的数量,获取满足预设领导者平衡分布条件的目标工作节点;
根据至少一个所述第一候选领导者应用副本和所述目标工作节点,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本。
4.根据权利要求3所述的方法,其特征在于,各类应用程序对应的多个应用副本被配置为对应一个副本管理对象,所述副本管理对象包括所对应的多个应用副本的领导者记录信息,所述领导者记录信息包括:领导者应用副本所在的工作节点标识和更新时间,所述方法还包括:
通过所述副本管理对象获取各类应用副本对应的领导者记录信息;
根据各类应用副本对应的领导者记录信息,获取各工作节点上领导者应用副本的数量并记录至所述领导者管理对象中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别获取目标集群中领导者应用副本的第一数量和工作节点的第二数量;
根据所述第一数量和所述第二数量,确定所述预设领导者平衡分布条件。
6.根据权利要求2所述的方法,其特征在于,每个所述资源观察向量还包括:所对应的第一应用副本的CPU资源占用率,和/或,所对应的第一应用副本的RAM资源占用率。
7.一种基于多副本的领导者选举装置,其特征在于,应用于目标集群,所述目标集群包括:多个工作节点,所述工作节点中包括目标类应用程序对应的多个第一应用副本,所述装置包括:
第一获取模块,用于通过各第一应用副本获取当前时刻的多个资源观察向量,每个所述资源观察向量包括所对应的第一应用副本与其他第一应用副本之间的通信往返时间;
第二获取模块,用于根据当前时刻的多个所述资源观察向量和预设预测器,获取当前时刻各所述第一应用副本对应的预测提交延迟总和,其中,所述预设预测器用于预测获取各第一应用副本向上一任期领导者应用副本发起请求的预测提交延迟;
确定模块,用于根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定第一目标领导者应用副本;
所述工作节点中还包括:其他类应用程序对应的多个第二应用副本,所述确定模块,具体用于根据当前时刻各第一应用副本对应的预测提交延迟总和,在当前时刻多个所述第一应用副本中确定至少一个第一候选领导者应用副本;
根据至少一个所述第一候选领导者应用副本和预设领导者平衡分布条件,在至少一个所述第一候选领导者应用副本中确定第一目标领导者应用副本,所述预设领导者平衡分布条件用于表征工作节点中领导者应用副本的最大数量。
8.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-6任一所述基于多副本的领导者选举方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-6任一所述基于多副本的领导者选举方法的步骤。
CN202210228188.XA 2022-03-10 2022-03-10 基于多副本的领导者选举方法、装置、设备及存储介质 Active CN114338695B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210228188.XA CN114338695B (zh) 2022-03-10 2022-03-10 基于多副本的领导者选举方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210228188.XA CN114338695B (zh) 2022-03-10 2022-03-10 基于多副本的领导者选举方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114338695A CN114338695A (zh) 2022-04-12
CN114338695B true CN114338695B (zh) 2022-05-24

Family

ID=81033982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210228188.XA Active CN114338695B (zh) 2022-03-10 2022-03-10 基于多副本的领导者选举方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114338695B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115495250B (zh) * 2022-11-17 2023-03-10 北京集度科技有限公司 一种流量均衡方法、电子设备及计算机程序产品
CN116611506B (zh) * 2023-07-18 2023-10-03 中国电信股份有限公司 用户分析模型训练方法、用户标签确定方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583958B2 (en) * 2010-11-15 2013-11-12 Microsoft Corporation Systems and methods of providing fast leader elections in distributed systems of simple topologies
US10372381B2 (en) * 2017-06-05 2019-08-06 International Business Machines Corporation Implicit leader election in a distributed storage network
CN107832138B (zh) * 2017-09-21 2021-09-14 南京邮电大学 一种扁平化的高可用namenode模型的实现方法
CN110855793A (zh) * 2019-11-19 2020-02-28 南昌航空大学 一种分布式***共识方法
CN112822239A (zh) * 2020-12-30 2021-05-18 深圳市宝能投资集团有限公司 一种区块链共识方法、装置、电子设备及存储介质
CN113873030A (zh) * 2021-09-24 2021-12-31 支付宝(杭州)信息技术有限公司 一种区块链的共识方法、共识节点及电子设备

Also Published As

Publication number Publication date
CN114338695A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN114338695B (zh) 基于多副本的领导者选举方法、装置、设备及存储介质
US10673763B2 (en) Learning or emulation approach to traffic engineering in information-centric networks
US10055262B1 (en) Distributed load balancing with imperfect workload information
US20190319881A1 (en) Traffic management based on past traffic arrival patterns
US8024740B2 (en) Acquisition system for distributed computing resources
US8499069B2 (en) Method for predicting performance of distributed stream processing systems
US8805991B1 (en) System and method for routing service requests
US7562355B2 (en) Systems and methods for optimal component composition in a stream processing system
CN107545338B (zh) 业务数据处理方法及业务数据处理***
US10715638B2 (en) Method and system for server assignment using predicted network metrics
Nahir et al. Replication-based load balancing
JP2008027442A (ja) サブタスク・プロセッサの分散スケジューリング
US20140188801A1 (en) Method and system for intelligent load balancing
CN102281190A (zh) 负载均衡装置组网方法以及服务器、客户端接入方法
JP2012222402A (ja) 中継装置、中継プログラム、及び中継方法
US20160011909A1 (en) Processing control system, processing control method, and processing control program
JP4265377B2 (ja) 負荷分散方法及び装置とシステム並びにプログラム
CN110601994A (zh) 云环境下微服务链感知的负载均衡方法
CN113010313A (zh) 一种负载均衡方法、装置、电子设备及计算机存储介质
Mostafa Cooperative fog communications using a multi-level load balancing
WO2018037930A1 (ja) データストア装置およびデータ管理方法
Saravanakumar et al. A novel load balancing algorithm for computational grid
US7676561B1 (en) Method and apparatus for adaptive load balancing
Zhou et al. TAP: Timeliness‐aware predication‐based replica selection algorithm for key‐value stores
US10812390B2 (en) Intelligent load shedding of traffic based on current load state of target capacity

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