CN111770178A - 一种领导节点选举方法及系统 - Google Patents
一种领导节点选举方法及系统 Download PDFInfo
- Publication number
- CN111770178A CN111770178A CN202010607789.2A CN202010607789A CN111770178A CN 111770178 A CN111770178 A CN 111770178A CN 202010607789 A CN202010607789 A CN 202010607789A CN 111770178 A CN111770178 A CN 111770178A
- Authority
- CN
- China
- Prior art keywords
- level
- node
- participating
- nodes
- node set
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000003860 storage Methods 0.000 claims description 4
- 210000004556 brain Anatomy 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 30
- 238000004891 communication Methods 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及计算机技术领域,尤其涉及一种领导节点选举方法及系统,用以降低选举过程中的网络通讯成本低,提高选举效率。本发明实施例包括:第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述第一级节点集合中的所有参与节点根据参照数据,投票选举出一个第一级投票节点;其中,所述第一级节点集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出;所述第一级投票节点作为领导节点向所述第一级节点集合中的所有参与节点发送选举结果消息;所述第一级节点集合中的每一个参与节点向对应的第二级节点集合中的所有参与节点发送选举结果消息。
Description
技术领域
本发明涉及金融科技(Fintech)中的计算机技术领域,尤其涉及一种领导节点选举方法及系统。
背景技术
随着金融科技,尤其是互联网科技金融的不断发展,越来越多的技术(如分布式、区块链Blockchain、人工智能等)应用在金融领域,但金融业也对技术提出了更高的要求,如针对分布式系统的数据处理过程。
选举是分布式系统实践中常见的问题,是保证分布式数据一致性的关键所在,通过打破节点间的对等关系,选出的领导节点(leader)有助于实现事务原子性、提升决议效率。
现有的选举的过程为:所有的节点参与选举,所有的节点互相发送选票,进行选票收集与判断。所有节点判断后,再对所有节点发送最新的选票。直到整个系统中所有机器选举的节点拥有超过50%的选票后,将该节点选为领导节点。现有技术是系统所有的节点都要参与每一轮的选票,每一轮投票都需要收集所有节点的选票,因此所需要的网络通讯成本较高,选举效率低。
发明内容
本申请提供一种分布式系统的领导节点选举方法及装置,用以降低选举过程中的网络通讯成本低,提高选举效率。
本发明实施例提供的一种领导节点选举方法,应用于分布式系统,包括:
第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述第一级节点集合中的所有参与节点根据参照数据,投票选举出一个第一级投票节点;其中,所述第一级节点集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出;
所述第一级投票节点作为领导节点向所述第一级节点集合中的所有参与节点发送选举结果消息;
所述第一级节点集合中的每一个参与节点向对应的第二级节点集合中的所有参与节点发送选举结果消息。
一种可选的实施例中,所述分布式系统包括N级节点集合,N为大于3的整数;
所述第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据之前,还包括:
针对第N级节点集合中的每个节点集合,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述节点集合中的所有参与节点根据参照数据,投票选举出一个第N级投票节点,作为第N-1级参与节点;其中,第N级的节点集合由所述分布式系统中的所有参与节点划分形成;
针对第M-1级节点集合中的每个节点集合,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述节点集合中的所有参与节点根据参照数据,投票选举出一个第M-1级投票节点,作为第M-2级参与节点;其中,第M-1级节点集合由第M级投票节点作为参与节点划分形成;其中,M依次为等于N至3的整数;
所述第一级节点集合中的每一个参与节点向对应的第二级节点集合中的所有参与节点发送选举结果消息之后,还包括:
所述第M-1级节点集合中的参与节点向对应的第M级节点集合中的所有参与节点发送选举结果消息;其中,M依次为等于3至N的整数。
一种可选的实施例中,针对第M-1级节点集合中的每个节点集合,所述节点集合中的所有参与节点根据参照数据,投票选举出第M-1级投票节点,作为第M-2级参与节点之后,还包括:
所述节点集合中的所有参与节点根据参照数据,投票选举出第M-1级备选节点;所述第M-1级备选节点为所述节点集合中除所述第M-1级投票节点之外的一个参与节点。
一种可选的实施例中,所述参照数据中包括对应的第M级节点集合的标识以及对应的第M级投票节点的对照标识;
针对所述第M-1级节点集合中的每个参与节点,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据之后,还包括:
所述参与节点比较每个参照数据中的第M级节点集合的标识;
若两个或两个以上参照数据的第M级节点集合的标识相同,则所述参与节点根据对照标识保留一个参照数据,并向相同标识对应的第M级节点集合中的所有参与节点发送脑裂告警消息;
所述相同标识对应的第M级节点集合中的所有参与节点重新投票选出第M级投票节点。
一种可选的实施例中,所述第一级节点集合中的所有参与节点根据参照数据,投票选举出一个第一级投票节点,包括:
针对所述第一级节点集合中的每个参与节点,所述参与节点根据接收到的多个参照数据进行比较,从所述多个参照数据对应的参与节点中确定第一级候选节点;所述参与节点向其余参与节点发送投票数据,所述投票数据中包含所述第一级候选节点的参照数据;
所述第一级候选节点确定接收到的投票数据中包含所述第一候选节点的参照数据的个数大于投票阈值,则作为所述第一级投票节点向所述第一级节点集合中的其余所有参与节点发送投票结果数据。
一种可选的实施例中,所述参照数据中包括对应的第二级节点集合的标识;
针对所述第一级节点集合中的每个参与节点,所述参与节点根据接收到的多个参照数据进行比较,包括:
所述参与节点比较每个参照数据中的第二级节点集合的标识;
若两个或两个以上参照数据的第二级节点集合的标识相同,则所述参与节点向相同标识对应的第二级节点集合中的所有参与节点发送脑裂告警消息;
所述参与节点与所述相同标识对应的第二级节点集合重新投票选出的第二级投票节点相互发送参照数据。
本发明还提供一种领导节点选举系统,包括:
第一级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出一个第一级投票节点;
第二级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出多个第二级投票节点;
其中,所述第一级节点集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出;
所述第一级投票节点,用于作为领导节点向所述第一级节点集合中的所有参与节点发送选举结果消息;
所述第一级节点集合中的参与节点,用于向对应的第二级节点集合中的所有参与节点发送选举结果消息。
一种可选的实施例中,所述分布式系统包括N级节点集合,N为大于3的整数;系统包括:
第N级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出第N级投票节点,作为第N-1级参与节点;其中,第N级的节点集合由所述分布式系统中的所有参与节点划分形成;
第M-1级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出第M-1级投票节点,作为第M-2级参与节点;其中,第M-1级节点集合由第M级投票节点作为参与节点划分形成;其中,M依次为等于N至3的整数;
所述第M-1级节点集合中的参与节点,还用于向对应的第M级节点集合中的所有参与节点发送选举结果消息;其中,M依次为等于3至N的整数。
本发明实施例还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上所述的方法。
本发明实施例中,分布式系统的选举过程分为第二级节点集合的投票过程和第一级节点集合的投票过程。其中,第一级集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出。也就是说,分布式系统中包括多个第二级节点集合,每个第二级节点集合中包括多个参与节点。一个第二级节点集合中的所有参与节点投票选出一个第二级投票节点,进而多个第二级节点集合可以选出对应数量的第二级投票节点。将这些第二级投票节点作为参与节点,组成第一级节点集合。第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据,所有参与节点根据接收到的参照数据,投票选举出一个第一级投票节点。这样,第一级投票节点即为选举出的领导节点,向第一级节点集合中的所有参与节点发送选举结果消息,告知第一级节点集合中的参与节点选举结果。进而,第一级节点集合中的每个参与节点向对应的第二级节点集合发送选举结果,这样,所有的第二级节点集合中的参与节点均可获知选举结果消息。本发明实施过程中,利用分级选举的方式,减少了每一轮参与选举的节点数量,从而降低了网络通讯成本低,能明显有效地提高选举效率,缩短选举耗时,从而提高服务的整体高可用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种可能的系统构架的结构示意图;
图2为本发明实施例提供的一种分布式系统的领导节点选举方法的流程示意图;
图3为本发明实施例提供的一种分布式系统的结构示意图;
图4为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例所适用的一种系统架构,包括N个参与节点。其中,任两个分节点之间的结构和参数相同,因此,每个分节点均能实现同样的功能。
节点可以是计算机等网络设备,可以是一个独立的设备,也可以是多个服务器所形成的服务器集群。优选地,节点可以采用云计算技术进行信息处理。
节点之间可以通过INTERNET网络进行通信,也可以通过全球移动通信系统(Global System for Mobile Communications,简称GSM)、长期演进(long termevolution,简称LTE)系统等移动通信系统进行通信。
为了便于理解,下面对本发明实施例中可能涉及的名词进行定义和解释。
领导节点:(leader)分布式系统中很多类任务都需要单个进程(或实例或节点)扮演居中协调的协调者角色,比如数据备份管理、组成员通信或原子性提交协议制定等,这个协调者角色就是领导节点。
LOOKING:寻找Leader状态,处于该状态需要进入选举流程。
LEADING:领导者状态,处于该状态的节点说明是角色已经是Leader。
FOLLOWING:跟随者状态,表示Leader已经选举出来,当前节点角色是follower。
ZXID:也就是事务id,为了保证事务的顺序一致性,采用了递增的事务ID来标识事务。所有的提议(proposal)在被提出的时候加上了ZXID。实现中ZXID是一个64位的数字。节点状态改变的每一个操作都将使节点接收到一个ZXID格式的时间戳,并且这个时间戳全局有序。也就是说,每个对节点的改变都将产生一个唯一的ZXID。
脑裂问题:服务器集群的2个子集,能够同时独立选举Leader,并正常运行,形成2个集群。脑裂会引起数据的不完整性,并且可能会对服务造成严重影响。
基于上述架构,本发明实施例提供了一种领导节点选举方法,应用于分布式系统,如图2所示,本发明实施例提供的领导节点选举方法包括以下步骤:
步骤201、第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据。
其中,所述第一级节点集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出。
步骤202、所述第一级节点集合中的所有参与节点根据参照数据,投票选举出一个第一级投票节点。
也就是说,本发明实施例中分布式系统的选举过程分为第二级节点集合的投票过程和第一级节点集合的投票过程。
首先,分布式系统中的所有参与节点划分组成多个第二级节点集合。划分的方式可以按照节点的地理位置进行划分,或者按照不同网络供应商进行划分。选举时,参与节点在各自的节点集合内部进行选举,每个节点集合选举出一个投票节点。即一个第二级节点集合中参与节点投票选举出一个第二级投票节点。例如,若分布式系统中包含100个节点,该100个节点为参与节点划分为10个第二级节点集合。则通过第二级节点集合的投票,选举出10个第二级投票节点。
这10个第二级投票节点再作为第一级参与节点组成第一级节点集合,进行第一级的投票选举,最终从这10个第一级参与节点中选出1个作为最终的领导节点。这样,第一轮选举的参与节点都较少,节点之间的网络通讯成本有效降低。
步骤203、所述第一级投票节点作为领导节点向所述第一级节点集合中的所有参与节点发送选举结果消息。
选举出领导节点后,该领导节点向第一级节点集合中的参与节点发送选举结果消息,告知第一级参与节点。之后,由每个第一级参与节点向对应的第二级节点集合发送选举结果消息。
步骤204、所述第一级节点集合中的每一个参与节点向对应的第二级节点集合中的所有参与节点发送选举结果消息。
本发明实施例中,分布式系统的选举过程分为第二级节点集合的投票过程和第一级节点集合的投票过程。其中,第一级集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出。也就是说,分布式系统中包括多个第二级节点集合,每个第二级节点集合中包括多个参与节点。一个第二级节点集合中的所有参与节点投票选出一个第二级投票节点,进而多个第二级节点集合可以选出对应数量的第二级投票节点。将这些第二级投票节点作为参与节点,组成第一级节点集合。第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据,所有参与节点根据接收到的参照数据,投票选举出一个第一级投票节点。这样,第一级投票节点即为选举出的领导节点,向第一级节点集合中的所有参与节点发送选举结果消息,告知第一级节点集合中的参与节点选举结果。进而,第一级节点集合中的每个参与节点向对应的第二级节点集合发送选举结果,这样,所有的第二级节点集合中的参与节点均可获知选举结果消息。本发明实施过程中,利用分级选举的方式,减少了每一轮参与选举的节点数量,从而降低了网络通讯成本低,能明显有效地提高选举效率,缩短选举耗时,从而提高服务的整体高可用性。
进一步的,所述第一级节点集合中的所有参与节点根据参照数据,投票选举出一个第一级投票节点,包括:
针对所述第一级节点集合中的每个参与节点,所述参与节点根据接收到的多个参照数据进行比较,从所述多个参照数据对应的参与节点中确定第一级候选节点;所述参与节点向所述第一级候选节点发送投票数据;
第一级候选节点确定接收到的投票数据的个数大于投票阈值,则作为所述第一级投票节点向所述第一级节点集合中的其余所有参与节点发送投票结果数据。
具体实时过程中,参照数据中可以包括每个节点的ZXID和节点编号(myid),参与节点通过比较ZXID,将ZXID最大的参与节点选为投票节点。如果出现ZXID相同的情况,则选择节点编号较大的参与节点。
由于每个节点集合的投票过程类似,这里统一描述,具体的选举过程如下:
第一步:每个参与节点发出一个投票。由于是初始情况,每个参与节点都会将自己作为Leader来进行投票,每次投票会包含所推举的服务器的myid和ZXID,使用(myid,ZXID)来表示。例如,Server1的投票为(1,0),Server2的投票为(2,0),然后各自将这个投票发给节点集合中其他参与节点。
第二步:接收来自各个参与节点的投票。节点集合的每个参与节点收到投票后,首先判断该投票的有效性,如检查是否是本轮投票,是否来自LOOKING状态的服务器。
第三步:处理投票。针对每一个投票,参与节点都需要将接收到的其他参与节点的投票和自身的投票进行比较,比较规则如下:
1.优先比较ZXID。ZXID比较大的参与节点优先作为Leader。
2.如果ZXID相同,那么就比较myid。myid较大的参与节点作为Leader服务器。
对于Server1而言,它的投票是(1,0),接收Server2的投票为(2,0),首先会比较两者的ZXID,均为0;再比较myid,此时Server2的myid较大,于是Server1更新自己的投票为(2,0),然后重新投票。对于Server2而言,其无须更新自己的投票,只是再次向节点集合中的所有参与节点发出上一次投票信息即可。
第四步:统计投票。每次投票后,参与节点都会统计投票信息,判断是否已经有超过阈值的参与节点接收到相同的投票信息。例如,对于Server1、Server2而言,都统计出节点集合中已经有两个参与节点接收了(2,0)的投票信息,此时便认为已经选出了Leader。
第五步:改变节点状态。一旦确定了Leader,每个节点就会更新自己的状态,如果是Follower,则将状态变更为FOLLOWING,如果是Leader,状态变更为LEADING。
进一步地,所述参照数据中包括对应的第二级节点集合的标识;
针对所述第一级节点集合中的每个参与节点,所述参与节点根据接收到的多个参照数据进行比较,包括:
所述参与节点比较每个参照数据中的第二级节点集合的标识;
若两个或两个以上参照数据的第二级节点集合的标识相同,则所述参与节点向相同标识对应的第二级节点集合中的所有参与节点发送脑裂告警消息;
所述参与节点与所述相同标识对应的第二级节点集合重新投票选出的第二级投票节点相互发送参照数据。
具体实施过程中,在第一级节点集合选举时,如果存在同一个第二级节点集合出现两个选票或两个以上选票时,需要等待该第二级节点集合重新选举出唯一的第二级投票节点。这是为了避免选举完成时存在脑裂现象。
最后一次选举出领导节点后,领导节点与系统中所有节点建立连接告知选举结果,若与超过50%的节点建立连接成功,即作为最终选举的有效的领节点,对外提供服务。
上述过程是将分布式系统中的节点分为两级节点集合。当分布式系统中的节点较多时,也可将所有节点分为N级节点集合,N为大于3的整数。
则,所述第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据之前,还包括:
针对第N级节点集合中的每个节点集合,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述节点集合中的所有参与节点根据参照数据,投票选举出一个第N级投票节点,作为第N-1级参与节点;其中,第N级的节点集合由所述分布式系统中的所有参与节点划分形成;
针对第M-1级节点集合中的每个节点集合,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述节点集合中的所有参与节点根据参照数据,投票选举出一个第M-1级投票节点,作为第M-2级参与节点;其中,第M-1级节点集合由第M级投票节点作为参与节点划分形成;其中,M依次为等于N至3的整数;
所述第一级节点集合中的每一个参与节点向对应的第二级节点集合中的所有参与节点发送选举结果消息之后,还包括:
所述第M-1级节点集合中的参与节点向对应的第M级节点集合中的所有参与节点发送选举结果消息;其中,M依次为等于3至N的整数。
具体选举时,对系统节点划分多级节点集合,最低级别的节点集合对应的区域最小,高级别的区域包含较低级别的区域。这里的低级别对应N的数字较大,高级别对应N的数字较小,最高级别为第一级节点集合。
选举时,首先是最小区域内的参与节点进行选举,选举的条件是一个可以配置的阈值。例如最小区域内,某一个参与节点的投票超过60%方可视为选举完成。选举出的投票节点可以参加高一级别节点集合的投票,但不等同于作为leader。由于第一次投票的过程是在一个个小区域中进行的,所以选举速度将极大提高。例如集群有200台节点,现有技术中200台节点都要相互发送和接收选票,网络压力较大,而本发明实施例中的每一轮选举只有部分节点参与,从而大大降低了网络压力。
选举过程中,每一个参与节点都向本节点集合中的其余所有参与节点发送一个选票,初始选票为投自己,每个参与节点在接收到其它参与节点发送的选票后对所有选票进行比较,选择选票中ZXID最大的参与节点为下一轮选举时所选的节点投出,如果ZXID相同,则选择节点编号大的节点投出。直到某一轮选举时,每个参与节点收到的选票有60%投向同一个参与节点时,这一个参与节点当选为该节点集合的投票节点,可以参与更高一级别的选举。
一个节点集合内选出投票节点后,其余所有的参与节点都会与该投票节点保持心跳连接。较低级别的节点集合中选举出来的投票节点,负责参加高一级别的节点集合的选举,同时负责与本节点集合的其余参与节点维持联系。投票节点需要将高一级别的节点集合的选举进度与选举结果同步发送给本节点集合内的其余所有参与节点。当投票节点出现故障无法与对应的节点集合通信时,该节点集合会进行重新选举,新选举出的投票节点继续执行通信任务。
当一个参与节点投票选出节点集合的投票节点后,再接收到新的选票时,则拒绝该选票,并告知发送投票的参与节点当前的投票情况。
为了避免网络不稳定时,投票节点无法参加高一级别的选举,本发明实施例中,针对第M-1级节点集合中的每个节点集合,所述节点集合中的所有参与节点根据参照数据,投票选举出第M-1级投票节点,作为第M-2级参与节点之后,还包括:
所述节点集合中的所有参与节点根据参照数据,投票选举出第M-1级备选节点;所述第M-1级备选节点为所述节点集合中除所述第M-1级投票节点之外的一个参与节点。
也就是说,除了第一级节点集合和第二级节点集合外,允许各级节点集合选举出一个备选节点。当该节点集合的投票节点失去连接时,备选节点可以主动代替投票节点参与高一级别的投票。从而能够减少网络不稳定时,重新选举的耗时。
为了保证选举的耗时,每一轮的选票都有一个超时时间,当超过这个时间则自动进入下一轮投票,并不再处理这一轮的投票,但是会告知发来延迟投票的参与节点已经进入到下一轮投票了。
本发明实施例通过设置备选节点与拒绝多张同一节点集合选票的方式,在降低脑裂风险的情况下,减少了重新选举的次数,有效地提高了选举效率。
本发明实施例的参照数据中包括对应的第M级节点集合的标识以及对应的第M级投票节点的对照标识。对于脑裂现象,针对所述第M-1级节点集合中的每个参与节点,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据之后,还包括:
所述参与节点比较每个参照数据中的第M级节点集合的标识;
若两个或两个以上参照数据的第M级节点集合的标识相同,则所述参与节点根据对照标识保留一个参照数据,并向相同标识对应的第M级节点集合中的所有参与节点发送脑裂告警消息;
所述相同标识对应的第M级节点集合中的所有参与节点重新投票选出第M级投票节点。
具体实施过程中,对于每一轮的投票,如果某一个参与节点收到同一个节点集合的两个或多个投票节点的选票时,即该节点集合出现了脑裂现象。对于这一轮选票,只接受ZXID大的投票节点的选票,拒绝ZXID值小的投票节点的选票。同时发送脑裂告警消息告知这同一个节点集合的两个或多个投票节点。
当投票节点被告知本节点集合出现闹裂时,会将脑裂告警消息发送至本节点集合中的其他所有参与节点。之后本节点集合中的所有节点开始新的选举。选举期间,本节点集合不参与高一级别节点集合的选举过程,从而降低脑裂的影响。但会将高一级别节点集合的选举过程同步到脑裂区域的所有节点。
当超过一定轮次,且该脑裂节点集合的高一级别节点集合的投票节点已经选出后,若脑裂区域始终未选出有效的投票节点,那么将由高一级别节点集合的投票节点介入脑裂节点集合的选举过程。高一级别节点集合的投票节点会直接与脑裂节点集合的所有节点通信进行投票,最终选出该脑裂节点集合的投票节点。
本发明实施例通过分级选举,当一个节点集合出现脑裂现象时,可以被高一个大区域及时发现并进行纠正,提高了整体服务的健康性。
本发明实施例还提供了一种领导节点选举系统,如图3所示,包括:
第一级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出一个第一级投票节点;
第二级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出多个第二级投票节点;
其中,所述第一级节点集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出;
所述第一级投票节点,用于作为领导节点向所述第一级节点集合中的所有参与节点发送选举结果消息;
所述第一级节点集合中的参与节点,用于向对应的第二级节点集合中的所有参与节点发送选举结果消息。
进一步地,所述分布式系统包括N级节点集合,N为大于3的整数;系统包括:
第N级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出第N级投票节点,作为第N-1级参与节点;其中,第N级的节点集合由所述分布式系统中的所有参与节点划分形成;
第M-1级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出第M-1级投票节点,作为第M-2级参与节点;其中,第M-1级节点集合由第M级投票节点作为参与节点划分形成;其中,M依次为等于N至3的整数;
所述第M-1级节点集合中的参与节点,还用于向对应的第M级节点集合中的所有参与节点发送选举结果消息;其中,M依次为等于3至N的整数。
基于相同的原理,本发明还提供一种电子设备,如图4所示,包括:
包括处理器401、存储器402、收发机403、总线接口404,其中处理器401、存储器402与收发机403之间通过总线接口404连接;
所述处理器401,用于读取所述存储器402中的程序,执行下列方法:
发送并接收参照数据;根据参照数据,投票选举出一个第一级投票节点;
其中,所述第一级节点集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出;
向所述第一级节点集合中的所有参与节点发送选举结果消息;以使所述第一级节点集合中的参与节点,向对应的第二级节点集合中的所有参与节点发送选举结果消息。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (10)
1.一种领导节点选举方法,应用于分布式系统,其特征在于,包括:
第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述第一级节点集合中的所有参与节点根据参照数据,投票选举出一个第一级投票节点;其中,所述第一级节点集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出;
所述第一级投票节点作为领导节点向所述第一级节点集合中的所有参与节点发送选举结果消息;
所述第一级节点集合中的每一个参与节点向对应的第二级节点集合中的所有参与节点发送选举结果消息。
2.如权利要求1所述的方法,其特征在于,所述分布式系统包括N级节点集合,N为大于3的整数;
所述第一级节点集合中的每个参与节点向同集合的其余参与节点广播参照数据之前,还包括:
针对第N级节点集合中的每个节点集合,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述节点集合中的所有参与节点根据参照数据,投票选举出一个第N级投票节点,作为第N-1级参与节点;其中,第N级的节点集合由所述分布式系统中的所有参与节点划分形成;
针对第M-1级节点集合中的每个节点集合,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据;所述节点集合中的所有参与节点根据参照数据,投票选举出一个第M-1级投票节点,作为第M-2级参与节点;其中,第M-1级节点集合由第M级投票节点作为参与节点划分形成;其中,M依次为等于N至3的整数;
所述第一级节点集合中的每一个参与节点向对应的第二级节点集合中的所有参与节点发送选举结果消息之后,还包括:
所述第M-1级节点集合中的参与节点向对应的第M级节点集合中的所有参与节点发送选举结果消息;其中,M依次为等于3至N的整数。
3.如权利要求2所述的方法,其特征在于,针对第M-1级节点集合中的每个节点集合,所述节点集合中的所有参与节点根据参照数据,投票选举出第M-1级投票节点,作为第M-2级参与节点之后,还包括:
所述节点集合中的所有参与节点根据参照数据,投票选举出第M-1级备选节点;所述第M-1级备选节点为所述节点集合中除所述第M-1级投票节点之外的一个参与节点。
4.如权利要求2所述的方法,其特征在于,所述参照数据中包括对应的第M级节点集合的标识以及对应的第M级投票节点的对照标识;
针对所述第M-1级节点集合中的每个参与节点,所述节点集合中的每个参与节点向同集合的其余参与节点广播参照数据之后,还包括:
所述参与节点比较每个参照数据中的第M级节点集合的标识;
若两个或两个以上参照数据的第M级节点集合的标识相同,则所述参与节点根据对照标识保留一个参照数据,并向相同标识对应的第M级节点集合中的所有参与节点发送脑裂告警消息;
所述相同标识对应的第M级节点集合中的所有参与节点重新投票选出第M级投票节点。
5.如权利要求1所述的方法,其特征在于,所述第一级节点集合中的所有参与节点根据参照数据,投票选举出一个第一级投票节点,包括:
针对所述第一级节点集合中的每个参与节点,所述参与节点根据接收到的多个参照数据进行比较,从所述多个参照数据对应的参与节点中确定第一级候选节点;所述参与节点向其余参与节点发送投票数据,所述投票数据中包含所述第一级候选节点的参照数据;
所述第一级候选节点确定接收到的投票数据中包含所述第一候选节点的参照数据的个数大于投票阈值,则作为所述第一级投票节点向所述第一级节点集合中的其余所有参与节点发送投票结果数据。
6.如权利要求5所述的方法,其特征在于,所述参照数据中包括对应的第二级节点集合的标识;
针对所述第一级节点集合中的每个参与节点,所述参与节点根据接收到的多个参照数据进行比较,包括:
所述参与节点比较每个参照数据中的第二级节点集合的标识;
若两个或两个以上参照数据的第二级节点集合的标识相同,则所述参与节点向相同标识对应的第二级节点集合中的所有参与节点发送脑裂告警消息;
所述参与节点与所述相同标识对应的第二级节点集合重新投票选出的第二级投票节点相互发送参照数据。
7.一种领导节点选举系统,其特征在于,包括:
第一级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出一个第一级投票节点;
第二级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出多个第二级投票节点;
其中,所述第一级节点集合由多个第二级投票节点作为参与节点组成,一个第二级投票节点由一个第二级节点集合中的所有参与节点投票选出;
所述第一级投票节点,用于作为领导节点向所述第一级节点集合中的所有参与节点发送选举结果消息;
所述第一级节点集合中的参与节点,用于向对应的第二级节点集合中的所有参与节点发送选举结果消息。
8.如权利要求7所述的系统,其特征在于,所述分布式系统包括N级节点集合,N为大于3的整数;系统包括:
第N级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出第N级投票节点,作为第N-1级参与节点;其中,第N级的节点集合由所述分布式系统中的所有参与节点划分形成;
第M-1级节点集合中的参与节点,用于向同集合的其余参与节点广播参照数据;根据参照数据,投票选举出第M-1级投票节点,作为第M-2级参与节点;其中,第M-1级节点集合由第M级投票节点作为参与节点划分形成;其中,M依次为等于N至3的整数;
所述第M-1级节点集合中的参与节点,还用于向对应的第M级节点集合中的所有参与节点发送选举结果消息;其中,M依次为等于3至N的整数。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1~6任一所述方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010607789.2A CN111770178B (zh) | 2020-06-29 | 2020-06-29 | 一种领导节点选举方法及系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010607789.2A CN111770178B (zh) | 2020-06-29 | 2020-06-29 | 一种领导节点选举方法及系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111770178A true CN111770178A (zh) | 2020-10-13 |
| CN111770178B CN111770178B (zh) | 2025-03-28 |
Family
ID=72724054
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010607789.2A Active CN111770178B (zh) | 2020-06-29 | 2020-06-29 | 一种领导节点选举方法及系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111770178B (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112413833A (zh) * | 2020-11-20 | 2021-02-26 | 珠海格力电器股份有限公司 | 空调组群系统的群控制方法、系统、控制中心设备 |
| CN114721789A (zh) * | 2021-01-05 | 2022-07-08 | 中国移动通信有限公司研究院 | 一种为联邦学习选择可信的协调者的方法、装置及设备 |
| CN114826581A (zh) * | 2022-04-28 | 2022-07-29 | 中国科学院软件研究所 | 一种轮依赖的分级共识方法及区块链共识协议构造方法 |
| WO2024164715A1 (zh) * | 2023-02-06 | 2024-08-15 | 天翼云科技有限公司 | 系统配置方法、装置、电子设备及存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102387210A (zh) * | 2011-10-25 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种基于快速同步网络的分布式文件系统监控方法 |
| CN109819022A (zh) * | 2019-01-11 | 2019-05-28 | 华侨大学 | 一种基于信用评价的区块链共识方法 |
| CN109819003A (zh) * | 2017-11-22 | 2019-05-28 | 南京理工大学 | 一种区块链的分层共识方法和系统 |
| CN110400218A (zh) * | 2019-06-05 | 2019-11-01 | 西安电子科技大学 | 基于陪审团制度的分层共识方法、区块链数据处理系统 |
| CN111064672A (zh) * | 2019-12-31 | 2020-04-24 | 国网甘肃省电力公司信息通信公司 | 云平台通信系统、选举方法及资源调度管理方法 |
-
2020
- 2020-06-29 CN CN202010607789.2A patent/CN111770178B/zh active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102387210A (zh) * | 2011-10-25 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种基于快速同步网络的分布式文件系统监控方法 |
| CN109819003A (zh) * | 2017-11-22 | 2019-05-28 | 南京理工大学 | 一种区块链的分层共识方法和系统 |
| CN109819022A (zh) * | 2019-01-11 | 2019-05-28 | 华侨大学 | 一种基于信用评价的区块链共识方法 |
| CN110400218A (zh) * | 2019-06-05 | 2019-11-01 | 西安电子科技大学 | 基于陪审团制度的分层共识方法、区块链数据处理系统 |
| CN111064672A (zh) * | 2019-12-31 | 2020-04-24 | 国网甘肃省电力公司信息通信公司 | 云平台通信系统、选举方法及资源调度管理方法 |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112413833A (zh) * | 2020-11-20 | 2021-02-26 | 珠海格力电器股份有限公司 | 空调组群系统的群控制方法、系统、控制中心设备 |
| CN112413833B (zh) * | 2020-11-20 | 2021-11-16 | 珠海格力电器股份有限公司 | 空调组群系统的群控制方法、系统、控制中心设备 |
| CN114721789A (zh) * | 2021-01-05 | 2022-07-08 | 中国移动通信有限公司研究院 | 一种为联邦学习选择可信的协调者的方法、装置及设备 |
| CN114721789B (zh) * | 2021-01-05 | 2025-03-14 | 中国移动通信有限公司研究院 | 一种为联邦学习选择可信的协调者的方法、装置及设备 |
| CN114826581A (zh) * | 2022-04-28 | 2022-07-29 | 中国科学院软件研究所 | 一种轮依赖的分级共识方法及区块链共识协议构造方法 |
| CN114826581B (zh) * | 2022-04-28 | 2025-06-10 | 中国科学院软件研究所 | 一种轮依赖的分级共识方法及区块链共识协议构造方法 |
| WO2024164715A1 (zh) * | 2023-02-06 | 2024-08-15 | 天翼云科技有限公司 | 系统配置方法、装置、电子设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111770178B (zh) | 2025-03-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113014634B (zh) | 集群选举处理方法、装置、设备及存储介质 | |
| CN111770178B (zh) | 一种领导节点选举方法及系统 | |
| CN108810100B (zh) | 一种主节点的选举方法、装置及设备 | |
| CN112328421B (zh) | 一种系统故障处理方法、装置、计算机设备和存储介质 | |
| US11736371B2 (en) | Heartbeat information sending method and apparatus, and heartbeat sending node | |
| CN108616566B (zh) | raft分布式系统选主方法、相关设备及系统 | |
| US9357403B2 (en) | Conflict handling in self-organizing networks | |
| CN110070445B (zh) | 一种基于区块链系统的交易处理方法及装置 | |
| CN111526186A (zh) | 基于Raft的分布式服务器集群配置方法 | |
| CN104077181A (zh) | 一种适用于分布式任务管理系统的状态一致性维护方法 | |
| EP3661155B1 (en) | Autonomous context aware state exchanging hierarchical cognitive edge network | |
| CN112487091B (zh) | 一种确定区块链共识节点的方法及装置 | |
| CN115801553A (zh) | 一种基于Raft改进的共识方法及相关设备 | |
| CN101072160B (zh) | 分布式虚拟环境的管理方法、系统及节点 | |
| CN113760468A (zh) | 分布式选举方法、装置、系统和介质 | |
| CN112511312A (zh) | 一种可组装的共识方法及系统 | |
| CN107483310B (zh) | 一种终端与转发节点之间组网的方法和系统 | |
| CN115794478B (zh) | 系统配置方法、装置、电子设备及存储介质 | |
| CN119696915A (zh) | 一种适用于任务卸载场景的边缘节点异常行为检测与定位方法 | |
| CN119946074A (zh) | 一种基于Raft共识算法的分布式集群及状态同步方法 | |
| KR102904493B1 (ko) | 블록 그룹 헤더의 획득 방법 및 장치, 저장 매체 및 전자 장치 | |
| CN115842767B (zh) | 基于共识算法的物联网设备集群协同方法及系统 | |
| CN117793108A (zh) | 一种大规模云服务器集群管理方法及装置 | |
| CN115801773A (zh) | 一种分布式集群选举的方法及设备 | |
| CN110620673B (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 |