CN113518116B - 基于Fast Paxos算法的领导服务器选举方法和装置 - Google Patents
基于Fast Paxos算法的领导服务器选举方法和装置 Download PDFInfo
- Publication number
- CN113518116B CN113518116B CN202110541086.9A CN202110541086A CN113518116B CN 113518116 B CN113518116 B CN 113518116B CN 202110541086 A CN202110541086 A CN 202110541086A CN 113518116 B CN113518116 B CN 113518116B
- Authority
- CN
- China
- Prior art keywords
- server
- decision
- leader
- servers
- ciphertext
- 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
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明是关于一种基于Fast Paxos算法的领导服务器选举方法和装置,方法包括:服务器集群中的每个服务器定期询问其他各个服务器的在线情况,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID并进行记票;当收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,为当前记录的SID加一票,当大于当前记录的SID时,将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举为新的领导服务器。
Description
技术领域
本公开涉及服务器管理技术领域,尤其涉及一种基于Fast Paxos算法的领导服务器选举方法和装置。
背景技术
在计算机领域,分布式系统已经成为解决计算机拓展,匹配不同计算机性能的最有效解决方案。无论在游戏行业,还是在其他大型服务器系统中,没有分布式系统思维的计算机程序,几乎没有扩展性和性能可言。然而伴随着分布式系统,随之而来的其中一个问题,就是共识问题。解决这个问题,就需要一个高效的共识算法。
共识算法描述了分布式系统中多个节点之间,彼此对某个状态达成一致结果的过程。共识算法允许一组机器像一个整体一样共享状态信息,即使其中一些机器出现故障也能够达成一致意见。正因为如此,共识算法在构建可信赖的大规模软件系统中扮演着重要的角色。
1990年,Leslie Lamport提出的一种基于消息传递且具有高度容错特性的共识(consensus)算法。在其论发表的论文《Paxos made simple》中,对算法概念做了明晰,和理论论证。但是不幸的是,尽管有很多工作,但是Paxos算法依然十分难以理解。通信消耗也较大,还存在活锁问题。
并且,Paxos自身的算法结构需要进行大幅的修改才能够应用到实际的系统中。这些都导致了工业界和学术界都对Paxos算法感到十分头疼。甚至在Classic Paxos算法中,Lamport本人都没有对Leader的选举问题作出理论的证明和有效方法的建设性提议。
发明内容
为克服相关技术中存在的问题,本公开提供一种基于Fast Paxos算法的领导服务器选举方法和装置,其可以摆脱奇数服务器数量的限制,能很好的处理宕机问题,在leader宕机时,也可以快速选举新的leader,保证了服务的可用性,服务端的无感知性。
根据本公开实施例的第一方面,提供一种基于Fast Paxos算法的领导服务器选举方法,方法包括:
服务器集群中的每个服务器定期询问其他各个服务器的在线情况,其中,服务器集群中包括领导服务器和决策服务器,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;
当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID(Security Identifiers,安全标识符),并进行记票;
当每个决策服务器收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,则为当前记录的SID加一票,当其他决策服务器的SID大于当前记录的SID时,则将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;
当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举该决策服务器为新的领导服务器。
在一个实施例中,优选地,方法还包括:
当确定任意决策服务器宕机时,领导服务器不变,进入Fast Paxos算法确定各其他决策服务器的处理业务。
在一个实施例中,优选地,方法还包括:
服务器集群中的每个服务器均维护一个数组,数组中保存各个服务器的联系方式,每个服务器根据数组中的联系方式定期询问其他各个服务器的在线情况。
在一个实施例中,优选地,方法还包括:
领导服务器记录每个服务器的联系方式,以得到联系方式数组,并广播至每个决策服务器进行存储;
领导服务器定时确定联系方式数组中,是否存在更新数据;
当确定存在更新数据时,广播更新数据至各决策服务器;
其中,领导服务器广播联系方式数组时,包括以下步骤:
根据用户设定的密钥,获取密钥的hash序列,并计算hash序列对应的位移权重值;
对联系方式数组进行数据压缩,得到压缩文,并按照位移权重值对压缩文进行移位加密,得到移位密文;
对移位密文进行Base64加密,使得密文为ASCII码序列,得到Base64密文;
根据hash序列生成混淆序列,使得混淆序列为ASCII码序列,并将混淆序列插入Base64密文中,得到正式密文,广播正式密文至各个决策服务器;
各个决策服务器接收到正式密文后,进行下述处理以得到联系方式数组:
根据预设的密钥,获取hash序列,并根据hash序列计算混淆数值;
根据混淆数值对正式密文进行混淆解码,得到Base64密文,对Base64密文进行Base64解密,得到移位密文;
计算hash序列生成位移权重值,根据位移权重对移位密文进行移位解密,得到压缩文;
对压缩文进行解压操作,得到联系方式数组。
在一个实施例中,优选地,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机,包括:
当任一决策服务器第一个发现领导服务器宕机时,广播重新竞选领导服务器的请求至其他决策服务器;
其他决策服务器接收到竞选领导服务器的请求后,询问领导服务器的情况,当确定领导服务器宕机时,也向其他决策服务器广播重新竞选领导服务器的请求;
当有任一决策服务器确定领导服务器未宕机时,向其他决策服务器广播停止竞选领导服务器的请求;
当所有决策服务器均确定领导服务器宕机时,开始竞选领导服务器。
根据本公开实施例的第二方面,提供一种基于Fast Paxos算法的领导服务器选举装置,装置包括:
第一确定模块,用于服务器集群中的每个服务器定期询问其他各个服务器的在线情况,其中,服务器集群中包括领导服务器和决策服务器,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;
记票模块,用于当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID,并进行记票;
比较模块,用于当每个决策服务器收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,则为当前记录的SID加一票,当其他决策服务器的SID大于当前记录的SID时,则将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;
选举模块,用于当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举该决策服务器为新的领导服务器。
在一个实施例中,优选地,装置还包括:
处理模块,用于当确定任意决策服务器宕机时,领导服务器不变,进入Fast Paxos算法确定各其他决策服务器的处理业务。
在一个实施例中,优选地,装置还包括:
保存模块,用于服务器集群中的每个服务器均维护一个数组,数组中保存各个服务器的联系方式,每个服务器根据数组中的联系方式定期询问其他各个服务器的在线情况。
在一个实施例中,优选地,装置还包括:
第一广播模块,用于领导服务器记录每个服务器的联系方式,以得到联系方式数组,并广播至每个决策服务器进行存储;
第二确定模块,用于领导服务器定时确定联系方式数组中,是否存在更新数据;
第二广播模块,用于当确定存在更新数据时,广播更新数据至各决策服务器;
其中,第一广播模块用于:
根据用户设定的密钥,获取密钥的hash序列,并计算hash序列对应的位移权重值;
对联系方式数组进行数据压缩,得到压缩文,并按照位移权重值对压缩文进行移位加密,得到移位密文;
对移位密文进行Base64加密,使得密文为ASCII码序列,得到Base64密文;
根据hash序列生成混淆序列,使得混淆序列为ASCII码序列,并将混淆序列插入Base64密文中,得到正式密文,广播正式密文至各个决策服务器;
各个决策服务器接收到正式密文后,进行下述处理以得到联系方式数组:
根据预设的密钥,获取hash序列,并根据hash序列计算混淆数值;
根据混淆数值对正式密文进行混淆解码,得到Base64密文,对Base64密文进行Base64解密,得到移位密文;
计算hash序列生成位移权重值,根据位移权重对移位密文进行移位解密,得到压缩文;
对压缩文进行解压操作,得到联系方式数组。
在一个实施例中,优选地,第一确定模块用于:
当任一决策服务器第一个发现领导服务器宕机时,广播重新竞选领导服务器的请求至其他决策服务器;
其他决策服务器接收到竞选领导服务器的请求后,询问领导服务器的情况,当确定领导服务器宕机时,也向其他决策服务器广播重新竞选领导服务器的请求;
当有任一决策服务器确定领导服务器未宕机时,向其他决策服务器广播停止竞选领导服务器的请求;
当所有决策服务器均确定领导服务器宕机时,开始竞选领导服务器。
根据本公开实施例的第三方面,提供一种基于Fast Paxos算法的领导服务器选举装置,装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为:
服务器集群中的每个服务器定期询问其他各个服务器的在线情况,其中,服务器集群中包括领导服务器和决策服务器,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;
当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID,并进行记票;
当每个决策服务器收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,则为当前记录的SID加一票,当其他决策服务器的SID大于当前记录的SID时,则将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;
当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举该决策服务器为新的领导服务器。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现第一方面中任一项方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
本发明实施例中,提出一种有效的Leader选举方式,其可以摆脱奇数服务器数量的限制,能很好的处理宕机问题,在leader宕机时,快速整合剩下的服务器,快速选举新的leader,保证了服务的可用性,服务端的无感知性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种基于Fast Paxos算法的领导服务器选举方法的流程图。
图2是根据一示例性实施例示出的又一种基于Fast Paxos算法的领导服务器选举方法的流程图。
图3是根据一示例性实施例示出的另一种基于Fast Paxos算法的领导服务器选举方法的流程图。
图4是根据一示例性实施例示出的另一种基于Fast Paxos算法的领导服务器选举方法的流程图。
图5是根据一示例性实施例示出的另一种基于Fast Paxos算法的领导服务器选举方法的流程图。
图6是根据一示例性实施例示出的一种基于Fast Paxos算法的领导服务器选举装置的框图。
图7是根据一示例性实施例示出的另一种基于Fast Paxos算法的领导服务器选举装置的框图。
图8是根据一示例性实施例示出的又一种基于Fast Paxos算法的领导服务器选举装置的框图。
图9是根据一示例性实施例示出的又一种基于Fast Paxos算法的领导服务器选举装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种基于Fast Paxos算法的领导服务器选举方法的流程图,如图1所示,该方法包括:
步骤S101,服务器集群中的每个服务器定期询问其他各个服务器的在线情况,其中,服务器集群中包括领导服务器和决策服务器,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;
步骤S102,当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID,并进行记票;
步骤S103,当每个决策服务器收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,则为当前记录的SID加一票,当其他决策服务器的SID大于当前记录的SID时,则将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;
步骤S104,当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举该决策服务器为新的领导服务器。
上述服务器选取方法,可以摆脱奇数服务器数量的限制,保证了在任意数量的可用服务器中,都能选举出唯一的一个leader服务器,能很好的处理宕机问题,在leader宕机时,也可以快速选举新的leader服务器,保证了服务的可用性,服务端的无感知性。
图2是根据一示例性实施例示出的又一种基于Fast Paxos算法的领导服务器选举方法的流程图。
如图2所示,在一个实施例中,优选地,方法还包括:
步骤S201,当确定任意决策服务器宕机时,领导服务器不变,进入Fast Paxos算法确定各其他决策服务器的处理业务。
图3是根据一示例性实施例示出的另一种基于Fast Paxos算法的领导服务器选举方法的流程图。
如图3所示,在一个实施例中,优选地,方法还包括:
步骤S301,服务器集群中的每个服务器均维护一个数组,数组中保存各个服务器的联系方式,每个服务器根据数组中的联系方式定期询问其他各个服务器的在线情况。
图4是根据一示例性实施例示出的另一种基于Fast Paxos算法的领导服务器选举方法的流程图。
如图4所示,在一个实施例中,优选地,方法还包括:
步骤S401,领导服务器记录每个服务器的联系方式,以得到联系方式数组,并广播至每个决策服务器进行存储;
步骤S402,领导服务器定时确定联系方式数组中,是否存在更新数据;
步骤S403,当确定存在更新数据时,广播更新数据至各决策服务器;
其中,领导服务器广播联系方式数组时,包括以下步骤:
根据用户设定的密钥,获取密钥的hash序列,并计算hash序列对应的位移权重值;
对联系方式数组进行数据压缩,得到压缩文,并按照位移权重值对压缩文进行移位加密,得到移位密文;
对移位密文进行Base64加密,使得密文为ASCII码序列,得到Base64密文;
根据hash序列生成混淆序列,使得混淆序列为ASCII码序列,并将混淆序列插入Base64密文中,得到正式密文,广播正式密文至各个决策服务器;
各个决策服务器接收到正式密文后,进行下述处理以得到联系方式数组:
根据预设的密钥,获取hash序列,并根据hash序列计算混淆数值;
根据混淆数值对正式密文进行混淆解码,得到Base64密文,对Base64密文进行Base64解密,得到移位密文;
计算hash序列生成位移权重值,根据位移权重对移位密文进行移位解密,得到压缩文;
对压缩文进行解压操作,得到联系方式数组。
图5是根据一示例性实施例示出的另一种基于Fast Paxos算法的领导服务器选举方法的流程图。
如图5所示,在一个实施例中,优选地,上述步骤S101包括:
步骤S501,当任一决策服务器第一个发现领导服务器宕机时,广播重新竞选领导服务器的请求至其他决策服务器;
步骤S502,其他决策服务器接收到竞选领导服务器的请求后,询问领导服务器的情况,当确定领导服务器宕机时,也向其他决策服务器广播重新竞选领导服务器的请求;
步骤S503,当有任一决策服务器确定领导服务器未宕机时,向其他决策服务器广播停止竞选领导服务器的请求;
步骤S504,当所有决策服务器均确定领导服务器宕机时,开始竞选领导服务器。
图6是根据一示例性实施例示出的一种基于Fast Paxos算法的领导服务器选举装置的框图。
如图6所示,根据本公开实施例的第二方面,提供一种基于Fast Paxos算法的领导服务器选举装置,装置包括:
第一确定模块61,用于服务器集群中的每个服务器定期询问其他各个服务器的在线情况,其中,服务器集群中包括领导服务器和决策服务器,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;
记票模块62,用于当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID,并进行记票;
比较模块63,用于当每个决策服务器收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,则为当前记录的SID加一票,当其他决策服务器的SID大于当前记录的SID时,则将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;
选举模块64,用于当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举该决策服务器为新的领导服务器。
图7是根据一示例性实施例示出的另一种基于Fast Paxos算法的领导服务器选举装置的框图。
如图7所示,在一个实施例中,优选地,装置还包括:
处理模块71,用于当确定任意决策服务器宕机时,领导服务器不变,进入FastPaxos算法确定各其他决策服务器的处理业务。
图8是根据一示例性实施例示出的又一种基于Fast Paxos算法的领导服务器选举装置的框图。
如图8所示,在一个实施例中,优选地,装置还包括:
保存模块81,用于服务器集群中的每个服务器均维护一个数组,数组中保存各个服务器的联系方式,每个服务器根据数组中的联系方式定期询问其他各个服务器的在线情况。
图9是根据一示例性实施例示出的又一种基于Fast Paxos算法的领导服务器选举装置的框图。
如图9所示,在一个实施例中,优选地,装置还包括:
第一广播模块91,用于领导服务器记录每个服务器的联系方式,以得到联系方式数组,并广播至每个决策服务器进行存储;
第二确定模块92,用于领导服务器定时确定联系方式数组中,是否存在更新数据;
第二广播模块93,用于当确定存在更新数据时,广播更新数据至各决策服务器;
其中,第一广播模块91用于:
根据用户设定的密钥,获取密钥的hash序列,并计算hash序列对应的位移权重值;
对联系方式数组进行数据压缩,得到压缩文,并按照位移权重值对压缩文进行移位加密,得到移位密文;
对移位密文进行Base64加密,使得密文为ASCII码序列,得到Base64密文;
根据hash序列生成混淆序列,使得混淆序列为ASCII码序列,并将混淆序列插入Base64密文中,得到正式密文,广播正式密文至各个决策服务器;
各个决策服务器接收到正式密文后,进行下述处理以得到联系方式数组:
根据预设的密钥,获取hash序列,并根据hash序列计算混淆数值;
根据混淆数值对正式密文进行混淆解码,得到Base64密文,对Base64密文进行Base64解密,得到移位密文;
计算hash序列生成位移权重值,根据位移权重对移位密文进行移位解密,得到压缩文;
对压缩文进行解压操作,得到联系方式数组。
在一个实施例中,优选地,第一确定模块61用于:
当任一决策服务器第一个发现领导服务器宕机时,广播重新竞选领导服务器的请求至其他决策服务器;
其他决策服务器接收到竞选领导服务器的请求后,询问领导服务器的情况,当确定领导服务器宕机时,也向其他决策服务器广播重新竞选领导服务器的请求;
当有任一决策服务器确定领导服务器未宕机时,向其他决策服务器广播停止竞选领导服务器的请求;
当所有决策服务器均确定领导服务器宕机时,开始竞选领导服务器。
根据本公开实施例的第三方面,提供一种基于Fast Paxos算法的领导服务器选举装置,装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为:
服务器集群中的每个服务器定期询问其他各个服务器的在线情况,其中,服务器集群中包括领导服务器和决策服务器,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;
当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID,并进行记票;
当每个决策服务器收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,则为当前记录的SID加一票,当其他决策服务器的SID大于当前记录的SID时,则将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;
当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举该决策服务器为新的领导服务器。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现第一方面中任一项方法的步骤。
进一步可以理解的是,本公开中“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
进一步可以理解的是,术语“第一”、“第二”等用于描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开,并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
进一步可以理解的是,本公开实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种基于Fast Paxos算法的领导服务器选举方法,其特征在于,方法包括:
服务器集群中的每个服务器定期询问其他各个服务器的在线情况,其中,服务器集群中包括领导服务器和决策服务器,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;
当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID,并进行记票;
当每个决策服务器收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,则为当前记录的SID加一票,当其他决策服务器的SID大于当前记录的SID时,则将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;
当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举该决策服务器为新的领导服务器。
2.根据权利要求1的方法,其特征在于,方法还包括:
当确定任意决策服务器宕机时,领导服务器不变,进入Fast Paxos算法确定各其他决策服务器的处理业务。
3.根据权利要求1的方法,其特征在于,方法还包括:
服务器集群中的每个服务器均维护一个数组,数组中保存各个服务器的联系方式,每个服务器根据数组中的联系方式定期询问其他各个服务器的在线情况。
4.根据权利要求3的方法,其特征在于,方法还包括:
领导服务器记录每个服务器的联系方式,以得到联系方式数组,并广播至每个决策服务器进行存储;
领导服务器定时确定联系方式数组中,是否存在更新数据;
当确定存在更新数据时,广播更新数据至各决策服务器;
其中,领导服务器广播联系方式数组时,包括以下步骤:
根据用户设定的密钥,获取密钥的hash序列,并计算hash序列对应的位移权重值;
对联系方式数组进行数据压缩,得到压缩文,并按照位移权重值对压缩文进行移位加密,得到移位密文;
对移位密文进行Base64加密,使得密文为ASCII码序列,得到Base64密文;
根据hash序列生成混淆序列,使得混淆序列为ASCII码序列,并将混淆序列插入Base64密文中,得到正式密文,广播正式密文至各个决策服务器;
各个决策服务器接收到正式密文后,进行下述处理以得到联系方式数组:
根据预设的密钥,获取hash序列,并根据hash序列计算混淆数值;
根据混淆数值对正式密文进行混淆解码,得到Base64密文,对Base64密文进行Base64解密,得到移位密文;
计算hash序列生成位移权重值,根据位移权重对移位密文进行移位解密,得到压缩文;
对压缩文进行解压操作,得到联系方式数组。
5.根据权利要求1的方法,其特征在于,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机,包括:
当任一决策服务器第一个发现领导服务器宕机时,广播重新竞选领导服务器的请求至其他决策服务器;
其他决策服务器接收到竞选领导服务器的请求后,询问领导服务器的情况,当确定领导服务器宕机时,也向其他决策服务器广播重新竞选领导服务器的请求;
当有任一决策服务器确定领导服务器未宕机时,向其他决策服务器广播停止竞选领导服务器的请求;
当所有决策服务器均确定领导服务器宕机时,开始竞选领导服务器。
6.一种基于Fast Paxos算法的领导服务器选举装置,其特征在于,装置包括:
第一确定模块,用于服务器集群中的每个服务器定期询问其他各个服务器的在线情况,其中,服务器集群中包括领导服务器和决策服务器,当任一决策服务器确定服务器集群中的领导服务器宕机时,所有其他决策服务器均确定领导服务器是否宕机;
记票模块,用于当所有决策服务器均确定领导服务器宕机时,每个决策服务器向其他决策服务器发送自己的SID,并进行记票;
比较模块,用于当每个决策服务器收到其他决策服务器的SID时,与当前记录的SID进行比较,当其他决策服务器的SID小于当前记录的SID时,则为当前记录的SID加一票,当其他决策服务器的SID大于当前记录的SID时,则将当前记录的SID替换为其他决策服务器的SID,继承之前的得票,并新加一票;
选举模块,用于当某一决策服务器记的SID得票数等于所有在线决策服务器的数量时,选举该决策服务器为新的领导服务器。
7.根据权利要求6的装置,其特征在于,装置还包括:
处理模块,用于当确定任意决策服务器宕机时,领导服务器不变,进入Fast Paxos算法确定各其他决策服务器的处理业务。
8.根据权利要求6的装置,其特征在于,装置还包括:
保存模块,用于服务器集群中的每个服务器均维护一个数组,数组中保存各个服务器的联系方式,每个服务器根据数组中的联系方式定期询问其他各个服务器的在线情况。
9.根据权利要求8的装置,其特征在于,装置还包括:
第一广播模块,用于领导服务器记录每个服务器的联系方式,以得到联系方式数组,并广播至每个决策服务器进行存储;
第二确定模块,用于领导服务器定时确定联系方式数组中,是否存在更新数据;
第二广播模块,用于当确定存在更新数据时,广播更新数据至各决策服务器;
其中,第一广播模块用于:
根据用户设定的密钥,获取密钥的hash序列,并计算hash序列对应的位移权重值;
对联系方式数组进行数据压缩,得到压缩文,并按照位移权重值对压缩文进行移位加密,得到移位密文;
对移位密文进行Base64加密,使得密文为ASCII码序列,得到Base64密文;
根据hash序列生成混淆序列,使得混淆序列为ASCII码序列,并将混淆序列插入Base64密文中,得到正式密文,广播正式密文至各个决策服务器;
各个决策服务器接收到正式密文后,进行下述处理以得到联系方式数组:
根据预设的密钥,获取hash序列,并根据hash序列计算混淆数值;
根据混淆数值对正式密文进行混淆解码,得到Base64密文,对Base64密文进行Base64解密,得到移位密文;
计算hash序列生成位移权重值,根据位移权重对移位密文进行移位解密,得到压缩文;
对压缩文进行解压操作,得到联系方式数组。
10.根据权利要求6的装置,其特征在于,第一确定模块用于:
当任一决策服务器第一个发现领导服务器宕机时,广播重新竞选领导服务器的请求至其他决策服务器;
其他决策服务器接收到竞选领导服务器的请求后,询问领导服务器的情况,当确定领导服务器宕机时,也向其他决策服务器广播重新竞选领导服务器的请求;
当有任一决策服务器确定领导服务器未宕机时,向其他决策服务器广播停止竞选领导服务器的请求;
当所有决策服务器均确定领导服务器宕机时,开始竞选领导服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110541086.9A CN113518116B (zh) | 2021-05-18 | 2021-05-18 | 基于Fast Paxos算法的领导服务器选举方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110541086.9A CN113518116B (zh) | 2021-05-18 | 2021-05-18 | 基于Fast Paxos算法的领导服务器选举方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113518116A CN113518116A (zh) | 2021-10-19 |
CN113518116B true CN113518116B (zh) | 2022-04-01 |
Family
ID=78064596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110541086.9A Active CN113518116B (zh) | 2021-05-18 | 2021-05-18 | 基于Fast Paxos算法的领导服务器选举方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113518116B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866554B (zh) * | 2022-05-20 | 2023-07-07 | 东风商用车有限公司 | 一种免选举分布式协议的方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208090A (zh) * | 2015-08-19 | 2015-12-30 | 江苏农牧人电子商务股份有限公司 | 一种基于Zookeeper实现Leader选举的方法 |
CN109951508A (zh) * | 2017-12-21 | 2019-06-28 | 中国移动通信集团重庆有限公司 | 基于Zookeeper的请求协调方法及装置、计算机设备及存储介质 |
CN111447096A (zh) * | 2020-04-20 | 2020-07-24 | 国网甘肃省电力公司信息通信公司 | 一种基于云平台通信系统的选举方法及选举系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071878A1 (en) * | 2006-09-18 | 2008-03-20 | Reuter James M | Method and system for strong-leader election in a distributed computer system |
CN106713378B (zh) * | 2015-07-30 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 实现多个应用服务器提供服务的方法和系统 |
-
2021
- 2021-05-18 CN CN202110541086.9A patent/CN113518116B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208090A (zh) * | 2015-08-19 | 2015-12-30 | 江苏农牧人电子商务股份有限公司 | 一种基于Zookeeper实现Leader选举的方法 |
CN109951508A (zh) * | 2017-12-21 | 2019-06-28 | 中国移动通信集团重庆有限公司 | 基于Zookeeper的请求协调方法及装置、计算机设备及存储介质 |
CN111447096A (zh) * | 2020-04-20 | 2020-07-24 | 国网甘肃省电力公司信息通信公司 | 一种基于云平台通信系统的选举方法及选举系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113518116A (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615195B2 (en) | Systems and methods for providing multi-node resiliency for blockchain peers | |
US11516072B2 (en) | Hybrid cluster recovery techniques | |
US8073897B2 (en) | Selecting values in a distributed computing system | |
US10154086B1 (en) | Distributed consumer cloud storage system | |
US20210256016A1 (en) | Blockchain system and method | |
US7921189B2 (en) | Single virtual client for multiple client access and equivalency | |
CN102904927B (zh) | 具有时间相关证书的分布式计算机系统 | |
US6490693B1 (en) | Dynamic reconfiguration of a quorum group of processors in a distributed computing system | |
US7856502B2 (en) | Cheap paxos | |
US7953890B1 (en) | System and method for switching to a new coordinator resource | |
US6542929B1 (en) | Relaxed quorum determination for a quorum based operation | |
CN113518116B (zh) | 基于Fast Paxos算法的领导服务器选举方法和装置 | |
US8880665B2 (en) | Nonstop service system using voting, and information updating and providing method in the same | |
US6968381B2 (en) | Method for availability monitoring via a shared database | |
CN110830582B (zh) | 一种基于服务器集群选主方法和装置 | |
US8359601B2 (en) | Data processing method, cluster system, and data processing program | |
JP5176835B2 (ja) | 監視装置、情報処理装置、情報処理方法並びにプログラム | |
US20080250421A1 (en) | Data Processing System And Method | |
CN113704024B (zh) | 数据处理方法、装置、相关设备及存储介质 | |
CN110602121B (zh) | 一种网络密钥获取方法、装置和计算机可读存储介质 | |
CN113342893A (zh) | 基于区块链的节点同步方法、装置、存储介质及服务器 | |
CN109947727B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
JP2007206913A (ja) | データベースアクセスシステム、アプリケーションサーバノード、データベースアクセス方法及びプログラム | |
CN114629783B (zh) | 状态监控方法、系统、设备及计算机可读存储介质 | |
CN116662040B (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 |