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算法的共识达成方法、装置与 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。