基于改进Raft算法的共识达成方法、装置与电子设备制造方法及图纸

技术编号:20925779 阅读:38 留言:0更新日期:2019-04-20 11:44
本发明专利技术实施例提供一种基于改进Raft算法的共识达成方法、装置与电子设备,其中所述方法包括:候选者节点向选民节点发送选举请求,所述选举请求中携带有所述候选者节点的资源信息;所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在所述设定时间段结束后,根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票。本发明专利技术实施例能够在资源分布不均匀的集群中,更有效的达成集群共识,并能有效改善集群Leader的稳定性。

Consensus building method, device and electronic equipment based on improved Raft algorithm

An embodiment of the present invention provides a consensus-building method, device and electronic device based on an improved Raft algorithm, wherein the method includes: a candidate node sends an election request to a voter node, in which resource information of the candidate node is carried; the voter node starts from receiving an election request sent by the first candidate node, and in a set time period. Within the system, electoral requests sent by other voter nodes continue to be received, and at the end of the set time period, votes are cast to the corresponding candidate nodes according to the resource information carried by the received electoral requests. The embodiment of the present invention can achieve cluster consensus more effectively in a cluster with uneven resource distribution, and can effectively improve the stability of cluster leader.

【技术实现步骤摘要】
基于改进Raft算法的共识达成方法、装置与电子设备
本专利技术实施例涉及分布式系统
,更具体地,涉及一种基于改进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剩余信息,按照下式计算本机资源本文档来自技高网...

【技术保护点】
1.一种基于改进Raft算法的共识达成方法,其特征在于,包括:控制候选者节点向选民节点发送选举请求,所述选举请求中携带有所述候选者节点的资源信息;控制所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在所述设定时间段结束后,根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票。

【技术特征摘要】
1.一种基于改进Raft算法的共识达成方法,其特征在于,包括:控制候选者节点向选民节点发送选举请求,所述选举请求中携带有所述候选者节点的资源信息;控制所述选民节点从接收到第一个候选者节点发送的选举请求开始,在设定时间段内,继续接收其它选民节点发送的选举请求,并在所述设定时间段结束后,根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票。2.根据权利要求1所述的方法,其特征在于,所述资源信息具体包含所述候选者节点的空闲CPU剩余信息、内存剩余信息和磁盘IO剩余信息。3.根据权利要求2所述的方法,其特征在于,在所述候选者节点向选民节点发送选举请求的步骤之前,还包括:控制所述候选者节点根据所述空闲CPU剩余信息、所述内存剩余信息和所述磁盘IO剩余信息,按照下式计算本机资源权重,作为所述资源信息:式中,∑ω表示所述资源信息,RCPU%、ω1分别表示所述空闲CPU剩余信息的百分比表示和CPU权重,RIM%、ω2分别表示所述内存剩余信息的百分比表示和内存权重,NIO、NIOmax分别表示当前IO数和磁盘理论IO上限,ω3表示磁盘IO权重。4.根据权利要求3所述的方法,其特征在于,所述根据接收到的各所述选举请求所携带的资源信息,向对应的所述候选者节点投票的步骤具体包括:比较接收到的所有所述选举请求对应的本机资源权重的大小,并向所有所述本机资源权重中的最大者对应的候选者节点投赞成票,向其余候选者节点投反对票。5.根据权利要求4所述的方法,其特征在于,所述选民节点在接收所述选举请求时,还对接收到的所述选举请求的发送时间进行记录;相应的,所述向所有所述本机资源权重中最大者对应的候选者节点投赞成票,向其余候选者节点投反对票的步骤具体包括:若所有所述本机资源权重中的最大者有多个,则向各所述最大者中对应的发送时间最早的候选者节点投赞成票,向其余候...

【专利技术属性】
技术研发人员:蔡洁
申请(专利权)人:语联网武汉信息技术有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1