CN109660367B - 基于改进Raft算法的共识达成方法、装置与电子设备 - Google Patents
基于改进Raft算法的共识达成方法、装置与电子设备 Download PDFInfo
- Publication number
- CN109660367B CN109660367B CN201811391148.7A CN201811391148A CN109660367B CN 109660367 B CN109660367 B CN 109660367B CN 201811391148 A CN201811391148 A CN 201811391148A CN 109660367 B CN109660367 B CN 109660367B
- Authority
- CN
- China
- Prior art keywords
- node
- election
- nodes
- voter
- candidate
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种基于改进Raft算法的共识达成方法、装置与电子设备,其中所述方法包括:候选者节点向选民节点发送选举请求,所述选举请求中携带有所述候选者节点的资源信息;所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在所述设定时间段结束后,根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票。本发明实施例能够在资源分布不均匀的集群中,更有效的达成集群共识,并能有效改善集群Leader的稳定性。
Description
技术领域
本发明实施例涉及分布式系统技术领域,更具体地,涉及一种基于改进Raft算法的共识达成方法、装置与电子设备。
背景技术
分布式系统是建立在网络之上的软件系统,在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局方式管理计算机资源的分布式操作系统。
曾经,Paxos一直是分布式协议的标准,但是Paxos难以理解且难以实现。如,Google的分布式锁系统Chubby作为Paxos实现,曾经就遭遇到很多问题。来自Stanford大学的新的分布式协议研究称为Raft,它是一个为真实世界应用建立的协议,主要注重协议的落地性和可理解性。
Raft是一种共识算法,通过当选的领导者达成共识。集群中的服务器可以是领导者Leader或追随者Follower,并且在选举的精确情况下可以是候选者。传统的Raft算法流程如图1所示,为根据现有技术的Raft算法达成共识的流程示意图。候选节点在向其它选民节点递交选举请求后,给自己投票并等待选举结果,而选民节点在收到选举请求后,即针对该选举请求进行投票。Raft算法简单有效且易于理解。但是,在资源分布不均匀的集群中,利用Raft算法却难以通过尽量少的选举来尽快的确定一个稳定的“Leader”,且选举出来的集群Leader的稳定性较差。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种基于改进Raft算法的共识达成方法、装置与电子设备,用以更有效的达成集群共识,并有效改善集群Leader的稳定性。
第一方面,本发明实施例提供一种基于改进Raft算法的共识达成方法,包括:
控制候选者节点向选民节点发送选举请求,所述选举请求中携带有所述候选者节点的资源信息;
控制所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在所述设定时间段结束后,根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票。
第二方面,本发明实施例提供一种基于改进Raft算法的共识达成装置,包括:
选举请求模块,用于控制候选者节点向选民节点发送选举请求,所述选举请求中携带有所述候选者节点的资源信息;
投票模块,用于控制所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在所述设定时间段结束后,根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票。
第三方面,本发明实施例提供一种电子设备,包括:至少一个存储器、至少一个处理器、通信接口和总线;所述存储器、所述处理器和所述通信接口通过所述总线完成相互间的通信,所述通信接口用于所述电子设备与集群节点之间的信息传输;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上第一方面所述的基于改进Raft算法的共识达成方法。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上第一方面所述的基于改进Raft算法的共识达成方法。
本发明实施例提供的基于改进Raft算法的共识达成方法、装置与电子设备,通过控制候选者节点在发送选举请求时携带自身资源信息,并控制选民节点根据选举请求携带的候选者节点的资源信息,来为各候选者节点投票,能够更有效的达成集群共识,并有效改善集群Leader的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据现有技术的Raft算法达成共识的流程示意图;
图2为本发明一实施例提供的基于改进Raft算法的共识达成方法的流程示意图;
图3为本发明另一实施例提供的基于改进Raft算法的共识达成方法的流程示意图;
图4为本发明实施例提供的基于改进Raft算法的共识达成装置的结构示意图;
图5为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例的一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
本发明实施例针对Raft的选举逻辑,候选者节点(Candidate)在递交选举请求时(候选者向集群其他节点要求投票自己),需要带上自己的”资源”信息。选民节点(Follower)在收到选举请求时不会立即反馈,而是在收到第一个选举请求时开启一个“等待窗口”,在这个等待窗口结束前,选民节点不会给任何候选人投票。窗口结束时,会对比候选者的“资源权”,权最高的候选者投票,如果有多个候选者有相同“权”,则会投给先进入窗口的候选者。以下将具体通过多个实施例对本发明实施例进行展开说明和介绍。
作为本发明实施例的一个方面,本实施例提供一种基于改进Raft算法的共识达成方法,参考图2,为本发明一实施例提供的基于改进Raft算法的共识达成方法的流程示意图,包括:
S201,控制候选者节点向选民节点发送选举请求,选举请求中携带有候选者节点的资源信息。
本发明实施例的候选者节点在向集群中的其它节点,即选民节点发送选举请求以要求投票自己时,在选举请求字段中添加自身的资源信息。如可以涉及自身CPU、内存及磁盘IO使用量等。因此可选的,资源信息具体包含候选者节点的空闲CPU剩余信息、内存剩余信息和磁盘IO剩余信息。
S202,控制选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在设定时间段结束后,根据接收到的各选举请求所携带的资源信息,向对应的候选者节点投票。
本发明实施例的选民节点在收到候选者节点发送的选举请求时,不会立即反馈,而是从收到第一个选举请求时开始计时,并在计时过程中继续接收其它候选者节点发送的选举请求。在计时过程中,选民节点不会给任何候选者节点投票,直到计时结束。在计时结束后,选民节点会比较候选者节点的资源信息,并根据比较结果,向不同的候选者节点投赞成或反对票。
可以理解的是,可以通过事先设置设定时间段,来控制计时结束。当计时达到设定时间段长度时,则结束当前计时,进行后续比较操作。
本发明实施例提供的基于改进Raft算法的共识达成方法,通过控制候选者节点在发送选举请求时携带自身资源信息,并控制选民节点根据选举请求携带的候选者节点的资源信息,来为各候选者节点投票,能够更有效的达成集群共识,并有效改善集群Leader的稳定性。
在上述各实施例的基础上,在候选者节点向选民节点发送选举请求的步骤之前,本发明实施例的方法还包括:
控制候选者节点根据空闲CPU剩余信息、内存剩余信息和磁盘IO剩余信息,按照下式计算本机资源权重,作为资源信息:
式中,∑ω表示资源信息,RCPU%、ω1分别表示空闲CPU剩余信息的百分比表示和CPU权重,RIM%、ω2分别表示内存剩余信息的百分比表示和内存权重,NIO、分别表示当前IO数和磁盘理论IO上限,ω3表示磁盘IO权重。
可以理解的是,根据上述各实施例的候选者节点在发送选举请求时,所携带的资源信息具体是其自身空闲CPU剩余信息、内存剩余信息和磁盘IO剩余信息的加权。因此,在发送选举请求之前,先要根据自身空闲CPU剩余信息、内存剩余信息和磁盘IO剩余信息,按照上述计算公式计算本机资源权重,作为资源信息。例如,在进行上述实施例的计算时,可以取CPU权重为10,内存权重和磁盘IO权重为5。
其中,根据上述各实施例可选的,根据接收到的各选举请求所携带的资源信息,向对应的候选者节点投票的步骤具体包括:比较接收到的所有选举请求对应的本机资源权重的大小,并向所有本机资源权重中的最大者对应的候选者节点投赞成票,向其余候选者节点投反对票。
可以理解的是,根据上述各实施例进行计算的本机资源权重,其值越大,说明综合剩余资源越充足,越有利于进行数据运算,作为领导者节点时更有利。因此,选民节点在接收选举请求结束后,比较所接收到的所有选举请求携带的本机资源权重的大小,选出其中的最大者,并向该最大者对应的候选者节点投赞成票,而向其余候选者节点投反对票。
在上述各实施例的基础上,选民节点在接收选举请求时,本发明实施例的方法还对接收到的选举请求的发送时间进行记录;相应的,向所有本机资源权重中最大者对应的候选者节点投赞成票,向其余候选者节点投反对票的步骤具体包括:若所有本机资源权重中的最大者有多个,则向各最大者中对应的发送时间最早的候选者节点投赞成票,向其余候选者节点投反对票。
可以理解的是,在根据上述各实施例对各候选者节点的资源信息进行比较的过程中,可能出现有多个候选者节点的资源信息并列最大的情况,而在进行投票选举时,通常只能有一个领导者节点。因此在选民节点接收各候选者节点的选举请求时,会记录该选举请求的发送时间,并在判断有多个并列最大时,进一步比较各并列最大所对应的候选者节点发送选举请求的时间,将赞成票投给并列最大中发送选举请求最早的候选者节点,而给其余节点投反对票。
其中,根据上述各实施例可选的,选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求的步骤具体包括:在选民节点接收第一个候选者节点发送的选举请求后,开启一个设定宽度的投票窗口,并在投票窗口范围内继续接收其它选民节点发送的选举请求,直至投票窗口结束。
本发明实施例在根据上述各实施例设置设定时间段的处理方式中,选民节点可以通过开启一个投票的时间窗口的方式进行设置,该时间窗口即为投票窗口,例如可以设置投票窗口的宽度为5s。具体而言,选民节点在收到第一个选举请求之后会开启一个投票的时间窗口,然后在时间窗口结束后,开始对比收到的选举请求中的资源信息,如上述各实施例中的“权”∑ω。之后可以向∑ω最大的节点投赞成票,向其他节点都反对票。
另外,在上述各实施例的基础上,在候选者节点向选民节点发送选举请求的步骤之后,本发明实施例的方法还包括:候选者节点监听收到的投票和集群广播,若收到N/2+1张赞成票,则该候选者节点成为领导节点并向集群发送当选领导者广播,若收到N/2+1张反对票或收到集群中其它节点发送的当选领导者广播,则该候选者节点成为工作节点。其中,N表示集群中所有节点的总数。
本发明实施例和传统的Raft一样,先获得N/2+1张赞成选票的候选者将成为集群Leader,集群达成共识。其中N表示集群节点总数,在集群初始化时可通过广播记录此后每有节点变更实时更新。具体而言,候选者节点向所有节点递交选举请求发送之后,监听集群投票情况,并根据监听到的结果确定自身节点性质。具体的,如果收到集群中Leader当选广播则终止参选,本节点成为工作节点(在选举的过程中也称为选民节点)“Follower”。如果本候选节点收到了N/2+1张赞成票,本节点成为“Leader”并向集群发送广播。如果收到N/2+1张反对票,本节点成为工作节点。
为进一步说明本发明实施例的技术方案,本发明实施例根据上述各实施例提供如下具体实施例的处理流程,但不对本发明实施例的保护范围进行限制。
图3为本发明另一实施例提供的基于改进Raft算法的共识达成方法的流程示意图,如图3所示,首先本发明实施例整体的实现方式与Raft一致。候选者节点递交选举请求时,对本机资源进行统计并计算资源权重,其计算公式为:
候选者节点向所有节点递交选举请求发送之后:
(1)如果收到集群中Leader当选广播则终止参选,本节点成为工作节点(在选举的过程中也称为选民节点)“Follower”;
(2)本候选节点收到了N/2+1张赞成票,本节点成为“Leader”并向集群发送广播;
(3)收到N/2+1张反对票,本节点成为工作节点。
选民节点在收到第一个选举请求之后会开启一个投票的时间窗口,然后在时间窗口结束后(5s),开始对比收到的选举请求“权”∑ω,向∑ω最大的节点投赞成票,其他节点都反对票。如果有多个节点并列第一,则向先发起选举请求的节点投赞成票。
为了保证每次选举都能有N/2+1张票,候选者节点也会参与投票且遵循以上带权规则。
作为本发明实施例的另一个方面,本发明实施例根据上述各实施例提供一种基于改进Raft算法的共识达成装置,该装置用于在上述各实施例中实现基于改进Raft算法的共识达成。因此,在上述各实施例的基于改进Raft算法的共识达成方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。
根据本发明实施例的一个实施例,基于改进Raft算法的共识达成装置的结构如图4所示,为本发明实施例提供的基于改进Raft算法的共识达成装置的结构示意图,该装置可以用于实现上述各方法实施例中基于改进Raft算法的共识达成,该装置包括:选举请求模块401和投票模块402。其中:
选举请求模块401用于控制候选者节点向选民节点发送选举请求,选举请求中携带有候选者节点的资源信息;投票模块402用于控制选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在设定时间段结束后,根据接收到的各选举请求所携带的资源信息,向对应的候选者节点投票。
具体而言,选举请求模块401控制候选者节点在向集群中的其它节点,即选民节点发送选举请求以要求投票自己时,在选举请求字段中添加自身的资源信息。如可以涉及自身CPU、内存及磁盘IO使用量等。因此可选的,资源信息具体包含候选者节点的空闲CPU剩余信息、内存剩余信息和磁盘IO剩余信息。
之后,投票模块402控制选民节点在收到候选者节点发送的选举请求时,不会立即反馈,而是从收到第一个选举请求时开始计时,并在计时过程中继续接收其它候选者节点发送的选举请求。在计时过程中,选民节点不会给任何候选者节点投票,直到计时结束。在计时结束后,投票模块402控制选民节点会比较候选者节点的资源信息,并根据比较结果,向不同的候选者节点投赞成或反对票。
本发明实施例提供的基于改进Raft算法的共识达成装置,通过设置相应的执行模块,控制候选者节点在发送选举请求时携带自身资源信息,并控制选民节点根据选举请求携带的候选者节点的资源信息,来为各候选者节点投票,能够更有效的达成集群共识,并有效改善集群Leader的稳定性。
可以理解的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现上述各实施例的装置中的各相关程序模块。并且,本发明实施例的基于改进Raft算法的共识达成装置利用上述各程序模块,能够实现上述各方法实施例的基于改进Raft算法的共识达成流程,在用于实现上述各方法实施例中基于改进Raft算法的共识达成时,本发明实施例的装置产生的有益效果与对应的上述各方法实施例相同,可以参考上述各方法实施例,此处不再赘述。
作为本发明实施例的又一个方面,本实施例根据上述各实施例提供一种电子设备,参考图5,为本发明实施例提供的电子设备的实体结构示意图,包括:至少一个存储器501、至少一个处理器502、通信接口503和总线504。
其中,存储器501、处理器502和通信接口503通过总线504完成相互间的通信,通信接口503用于该电子设备与集群节点设备之间的信息传输;存储器501中存储有可在处理器502上运行的计算机程序,处理器502执行该计算机程序时,实现如上述各实施例所述的基于改进Raft算法的共识达成方法。
可以理解为,该电子设备中至少包含存储器501、处理器502、通信接口503和总线504,且存储器501、处理器502和通信接口503通过总线504形成相互间的通信连接,并可完成相互间的通信,如处理器502从存储器501中读取基于改进Raft算法的共识达成方法的程序指令等。另外,通信接口503还可以实现该电子设备与集群节点设备之间的通信连接,并可完成相互间信息传输,如通过通信接口503实现基于改进Raft算法的共识达成等。
电子设备运行时,处理器502调用存储器501中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:控制候选者节点向选民节点发送选举请求,选举请求中携带有候选者节点的资源信息;控制选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在设定时间段结束后,根据接收到的各选举请求所携带的资源信息,向对应的候选者节点投票等。
上述的存储器501中的程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还根据上述各实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行如上述各实施例所述的基于改进Raft算法的共识达成方法,例如包括:控制候选者节点向选民节点发送选举请求,选举请求中携带有候选者节点的资源信息;控制选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在设定时间段结束后,根据接收到的各选举请求所携带的资源信息,向对应的候选者节点投票等。
本发明实施例提供的电子设备和非暂态计算机可读存储介质,通过执行上述各实施例所述的基于改进Raft算法的共识达成方法,控制候选者节点在发送选举请求时携带自身资源信息,并控制选民节点根据选举请求携带的候选者节点的资源信息,来为各候选者节点投票,能够更有效的达成集群共识,并有效改善集群Leader的稳定性。
可以理解的是,以上所描述的装置、电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
另外,本领域内的技术人员应当理解的是,在本发明实施例的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例的说明书中,说明了大量具体细节。然而应当理解的是,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明实施例公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。
最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。
Claims (8)
1.一种基于改进Raft算法的共识达成方法,其特征在于,包括:
控制候选者节点向选民节点发送选举请求,所述选举请求中携带有所述候选者节点的资源信息,所述资源信息具体是所述候选者节点的空闲CPU剩余信息、内存剩余信息和磁盘IO剩余信息的加权;
控制所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在所述设定时间段结束后,根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票;
所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求的步骤具体包括:
在所述选民节点接收所述第一个候选者节点发送的选举请求后,开启一个设定宽度的投票窗口,并在所述投票窗口范围内继续接收其它选民节点发送的选举请求,直至所述投票窗口结束。
3.根据权利要求2所述的方法,其特征在于,所述根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票的步骤具体包括:
比较接收到的所有所述选举请求对应的本机资源权重的大小,并向所有所述本机资源权重中的最大者对应的候选者节点投赞成票,向其余候选者节点投反对票。
4.根据权利要求3所述的方法,其特征在于,所述选民节点在接收所述选举请求时,还对接收到的所述选举请求的发送时间进行记录;
相应的,所述向所有所述本机资源权重中最大者对应的候选者节点投赞成票,向其余候选者节点投反对票的步骤具体包括:
若所有所述本机资源权重中的最大者有多个,则向各所述最大者中对应的发送时间最早的候选者节点投赞成票,向其余候选者节点投反对票。
5.根据权利要求1所述的方法,其特征在于,在所述候选者节点向选民节点发送选举请求的步骤之后,还包括:
所述候选者节点监听收到的投票和集群广播,若收到N/2+1张赞成票,则该候选者节点成为领导节点并向集群发送当选领导者广播,若收到N/2+1张反对票或收到集群中其它节点发送的当选领导者广播,则该候选者节点成为工作节点,其中,N表示集群中所有节点的总数。
6.一种基于改进Raft算法的共识达成装置,其特征在于,包括:
选举请求模块,用于控制候选者节点向选民节点发送选举请求,所述选举请求中携带有所述候选者节点的资源信息,所述资源信息具体是所述候选者节点的空闲CPU剩余信息、内存剩余信息和磁盘IO剩余信息的加权;
投票模块,用于控制所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在所述设定时间段结束后,根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票;
所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求的步骤具体包括:
在所述选民节点接收所述第一个候选者节点发送的选举请求后,开启一个设定宽度的投票窗口,并在所述投票窗口范围内继续接收其它选民节点发送的选举请求,直至所述投票窗口结束。
7.一种电子设备,其特征在于,包括:至少一个存储器、至少一个处理器、通信接口和总线;
所述存储器、所述处理器和所述通信接口通过所述总线完成相互间的通信,所述通信接口还用于所述电子设备与集群节点之间的信息传输;
所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至5中任一所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811391148.7A CN109660367B (zh) | 2018-11-21 | 2018-11-21 | 基于改进Raft算法的共识达成方法、装置与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811391148.7A CN109660367B (zh) | 2018-11-21 | 2018-11-21 | 基于改进Raft算法的共识达成方法、装置与电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109660367A CN109660367A (zh) | 2019-04-19 |
CN109660367B true CN109660367B (zh) | 2021-03-26 |
Family
ID=66112337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811391148.7A Active CN109660367B (zh) | 2018-11-21 | 2018-11-21 | 基于改进Raft算法的共识达成方法、装置与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109660367B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365735A (zh) * | 2019-05-28 | 2019-10-22 | 国网浙江省电力有限公司杭州供电公司 | 应用于分布式新能源系统的基于raft算法的区块链共识方法 |
CN111092956A (zh) * | 2019-12-25 | 2020-05-01 | 南京甄视智能科技有限公司 | 资源同步方法、装置、存储介质及设备 |
CN111432007B (zh) * | 2020-03-30 | 2022-07-15 | 中科边缘智慧信息科技(苏州)有限公司 | 一种机动环境下节点接入管理与认证的方法 |
CN111988203B (zh) * | 2020-09-03 | 2022-08-23 | 深圳壹账通智能科技有限公司 | 节点选举方法、装置及存储介质 |
CN113194146B (zh) * | 2021-05-06 | 2022-10-28 | 杭州复杂美科技有限公司 | 领导节点确定方法、计算机设备和存储介质 |
CN113596093A (zh) * | 2021-06-28 | 2021-11-02 | 青岛海尔科技有限公司 | 设备集合的控制方法和装置、存储介质及电子设备 |
CN113612618B (zh) * | 2021-08-18 | 2022-05-17 | 东北大学 | 一种联盟链共识方法及装置 |
CN115914225B (zh) * | 2022-10-28 | 2024-04-30 | 三峡大学 | 一种针对Raft共识算法选举阶段的优化方法 |
CN115865923A (zh) * | 2023-02-15 | 2023-03-28 | 湖南大学 | 联盟链的高性能领导节点选举方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064649A (zh) * | 2007-02-02 | 2007-10-31 | 华为技术有限公司 | 选举超级节点、搜索网络节点或资源的方法、装置及系统 |
CN104158642A (zh) * | 2014-08-08 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | 一种为软件定义网络控制器提供备份的方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7912978B2 (en) * | 2000-07-19 | 2011-03-22 | Akamai Technologies, Inc. | Method for determining metrics of a content delivery and global traffic management network |
US20070288302A1 (en) * | 2006-06-12 | 2007-12-13 | Ravneet Singh | Donation Pages for an On-Line Campaign Management |
CA2818752C (en) * | 2010-11-23 | 2019-09-10 | Elevance Renewable Sciences, Inc. | Lipid-based wax compositions substantially free of fat bloom and methods of making |
CN103677974A (zh) * | 2013-09-26 | 2014-03-26 | 北京工业大学 | 一种机器人中间件命名服务自稳定方法 |
US9367410B2 (en) * | 2014-09-12 | 2016-06-14 | Facebook, Inc. | Failover mechanism in a distributed computing system |
CN106130759B (zh) * | 2016-06-22 | 2021-02-09 | 白杨 | 面向服务的模块化系统体系架构 |
CN110233905B (zh) * | 2017-04-20 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 节点设备运行方法、节点设备及存储介质 |
CN108810046A (zh) * | 2017-04-28 | 2018-11-13 | 华为技术有限公司 | 一种选举领导者Leader的方法、装置及设备 |
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
-
2018
- 2018-11-21 CN CN201811391148.7A patent/CN109660367B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064649A (zh) * | 2007-02-02 | 2007-10-31 | 华为技术有限公司 | 选举超级节点、搜索网络节点或资源的方法、装置及系统 |
CN104158642A (zh) * | 2014-08-08 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | 一种为软件定义网络控制器提供备份的方法及系统 |
Non-Patent Citations (3)
Title |
---|
《 基于Redis的一致性分析与改进》;王续法;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180215;全文 * |
《A leader election protocol for eventually synchronous shared memory systems》;R. Guerraoui; M. Raynal;《The Fourth IEEE Workshop on Software Technologies for Future Embedded and Ubiquitous Systems, and the Second International Workshop on Collaborative Computing, Integration, and Assurance 》;20060508;全文 * |
《分布式同步系统Zookeeper的优化》;唐海东,武延军;《计算机工程》;20140430(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109660367A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109660367B (zh) | 基于改进Raft算法的共识达成方法、装置与电子设备 | |
Du et al. | Learning resource allocation and pricing for cloud profit maximization | |
EP3525096A1 (en) | Resource load balancing control method and cluster scheduler | |
CN112764936B (zh) | 基于深度强化学习的边缘计算服务器信息处理方法及装置 | |
WO2020228378A1 (zh) | 一种确定数据库的配置参数的方法及装置 | |
US20200394448A1 (en) | Methods for more effectively moderating one or more images and devices thereof | |
CN110650208A (zh) | 分布式集群存储方法、系统、装置及计算机可读存储介质 | |
WO2024037368A1 (zh) | 调度装置的调度优化方法、调度装置和存储介质 | |
CN110806928A (zh) | 一种作业提交方法及系统 | |
CN112494935B (zh) | 一种云游戏平台池化方法、电子设备及存储介质 | |
CN111111216B (zh) | 一种匹配方法、装置、服务器及存储介质 | |
CN114528893A (zh) | 机器学习模型训练方法、电子设备及存储介质 | |
CN110347477B (zh) | 一种云环境下服务自适应部署方法和装置 | |
CN106648895A (zh) | 一种处理数据的方法、装置及终端 | |
CN113608677B (zh) | 一种分布式存储系统的参数调优方法、系统及装置 | |
CN115827178A (zh) | 边缘计算任务分配方法、装置、计算机设备及相关介质 | |
CN115529217A (zh) | 控制器选举方法和控制器、存储介质 | |
CN105874435A (zh) | 分布式事务中的非阻塞注册 | |
CN118170524B (zh) | 基于强化学习的任务调度方法、装置、设备、介质及产品 | |
CN111127220A (zh) | 基于投票机制的任务处理方法及装置、设备、介质 | |
CN115686865B (zh) | 一种基于多场景应用的超算节点资源分配系统 | |
CN117762760B (zh) | 服务器的硬件性能测试分数获取方法、装置和介质 | |
WO2014117566A1 (en) | Ranking method and system | |
CN118070065A (zh) | 一种基于图博弈的模型训练方法、装置、系统及存储介质 | |
CN115987998A (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 |