CN115794478B - 系统配置方法、装置、电子设备及存储介质 - Google Patents
系统配置方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115794478B CN115794478B CN202310068406.2A CN202310068406A CN115794478B CN 115794478 B CN115794478 B CN 115794478B CN 202310068406 A CN202310068406 A CN 202310068406A CN 115794478 B CN115794478 B CN 115794478B
- Authority
- CN
- China
- Prior art keywords
- nodes
- voting
- node
- time threshold
- vote
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 5
- 230000004069 differentiation Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 7
- 241000222120 Candida <Saccharomycetales> Species 0.000 description 6
- 238000011084 recovery Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种系统配置方法、装置、电子设备及存储介质,涉及电子技术领域,以解决分布式系统在选举新的领导节点时,因耗时长导致的集群故障恢复较慢的问题。该方法包括:基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,根据各第一节点的第一投票数,确定各第一节点的时间阈值;在满足第一时间阈值的情况下,向除第一时间阈值对应的第一节点以外的N2个第一节点发送投票请求;在基于投票请求进行的目标轮的第二次投票中,根据第一时间阈值对应的第一节点的第二投票数,确定领导节点。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种系统配置方法、装置、电子设备及存储介质。
背景技术
目前,分布式系统通常采用一主多备架构,当领导节点发生故障时,将使用选举算法选出新的领导节点,以此来保证集群整体的高可用。
在现有技术中,当领导节点发生故障时,由其它节点投票选举出新的领导节点,在一轮投票中,可能没有出现投票较多的节点,而是所有的节点投票都差不多,从而需要再进行一轮投票,以此类推,直至选出新的领导节点。
可见,在现有技术中,分布式系统在选举新的领导节点时,具有耗时长的问题,从而导致集群故障恢复较慢。
发明内容
本申请实施例提供一种系统配置方法,以解决在现有技术中,分布式系统在选举新的领导节点时,具有耗时长的问题,从而导致集群故障恢复较慢的问题。
为了解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供了一种系统配置方法,所述方法包括:
基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,获取所述N1个第一节点的所述第一投票数;其中,N1为正整数,所述第一节点的投票数大于零;
根据所述N1个第一节点的第一投票数,分别确定所述N1个第一节点对应的N1个时间阈值;
在满足第一时间阈值的情况下,向N2个所述第一节点发送投票请求;其中,所述N1个时间阈值包括所述第一时间阈值,N2为正整数,且N2<N1,所述N2个第一节点不包括所述第一时间阈值对应的第一节点;
在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点。
可选地,所述在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点,包括:
在所述第一时间阈值对应的一个第一节点的第二投票数大于第二阈值的情况下,确定所述第一时间阈值对应的所述一个第一节点为领导节点。
可选地,所述在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点,包括:
在所述第一时间阈值对应的第一节点的第二投票数均小于或者等于第二阈值的情况下,基于所述第一时间阈值对应的第一节点,进行下一个目标轮的投票。
可选地,所述第二阈值为N2/2。
可选地,所述在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点,包括:
在所述第一时间阈值对应的至少两个第一节点的第二投票数相同、且所述第二投票数满足第一条件的情况下,在所述至少两个第一节点中确定领导节点。
可选地,所述基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,获取所述N1个第一节点的所述第一投票数之前,所述方法还包括:
在所述目标轮的第一次投票中,按照所述目标轮的上一轮的投票方式进行投票。
可选地,所述第一节点的第一投票数与所述第一节点的时间阈值呈负相关。
本申请实施例还提供了一种系统配置装置,所述装置包括:
获取模块,用于基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,获取所述N1个第一节点的所述第一投票数;其中,N1为正整数,所述第一节点的投票数大于零;
第一确定模块,用于根据所述N1个第一节点的第一投票数,分别确定所述N1个第一节点对应的N1个时间阈值;
发送模块,用于在满足第一时间阈值的情况下,向N2个所述第一节点发送投票请求;其中,所述N1个时间阈值包括所述第一时间阈值,N2为正整数,且N2<N1,所述N2个第一节点不包括所述第一时间阈值对应的第一节点;
第二确定模块,用于在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点。
可选地,所述第二确定模块,包括:
第一确定单元,用于在所述第一时间阈值对应的一个第一节点的第二投票数大于第二阈值的情况下,确定所述第一时间阈值对应的所述一个第一节点为领导节点。
可选地,所述第二确定模块,包括:
第二确定单元,用于在所述第一时间阈值对应的第一节点的第二投票数均小于或者等于第二阈值的情况下,基于所述第一时间阈值对应的第一节点,进行下一个目标轮的投票。
可选地,所述第二确定模块,包括:
第三确定单元,用于在所述第一时间阈值对应的至少两个第一节点的第二投票数相同、且所述第二投票数满足第一条件的情况下,在所述至少两个第一节点中确定领导节点。
可选地,所述装置还包括:
投票模块,用于在所述目标轮的第一次投票中,按照所述目标轮的上一轮的投票方式进行投票。
可选地,所述第一节点的第一投票数与所述第一节点的时间阈值呈负相关。
本申请实施例还提供了一种电子设备,该设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述的系统配置方法。
本申请实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的系统配置方法。
这样,在本申请的实施例中,在首轮投票失败的情况下,开启若干目标轮的投票,在任一目标轮的第一次投票中,可参考上一轮的投票方式,从而统计N1个第一节点的第一投票数,N1个第一节点可以是上一轮投票中有投票数的各节点,因此,N1个第一节点在目标轮中的第一投票数均小于第一阈值。然后,根据N1个第一节点在目标轮中的第一投票数确定N1个第一节点对应的N1个时间阈值,当达到其中的第一时间阈值时,向除第一时间阈值对应的第一节点以外的N2个第一节点,发送投票请求,以进行第二次投票,从而N2个第一节点可以向第一时间阈值对应的各第一节点进行投票,进而统计第一时间阈值对应的各第一节点的第二投票数,最后,在第一时间阈值对应的各第一节点中,确定一个领导节点。可见,基于本申请的实施例,在首轮投票未选举出领导节点的情况下,在后面的投票中,进行若干目标轮投票,在目标轮的投票中,通过两次投票,可以筛选掉一部分候选节点,从而减小候选节点的数量,降低选举的失败率,缩短选举耗时,加快集群故障恢复。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的系统配置方法的流程图之一;
图2为本申请实施例的系统配置方法的流程图之二;
图3为本申请实施例的系统配置装置的框图;
图4为本申请实施例的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,示出了本申请一个实施例的系统配置方法的步骤流程图,该方法应用于电子设备,如图1所示,该系统配置方法可以包括如下步骤:
步骤110:基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,获取N1个第一节点的第一投票数;其中,N1为正整数,第一节点的投票数大于零。
通常,领导(Leader)节点在任期内会定期向集群中的其它节点发送心跳包,用以表明自身存活。若集群中的任意节点在一定的时间周期内未接收到Leader节点发送来的心跳包,则表示接收超时,从而认为Leader节点出现故障,进而触发集群中除Leader节点以外的其它节点的状态由跟随者(Follower)节点变更为候选者(Candidate)节点,并开启选举流程。
可选地,由于Raft 一致性选举算法的算法复杂度低、选举速度快、算法设计简练,因此,分布式系统可采用Raft一致性选举算法来保证秒级故障切换以及数据一致性。
在Raft 一致性选举算法中,对于不同的Follower节点,其对应的选举超时时间是不一样的,因此,每个Follower节点变更为Candidate节点的时间点是不一样的。从而,有一部分Follower节点,会优先变更为Candidate节点,对于Candidate节点,首先,随机设定一个选举超时时间,并增加节点本地的当前任期(currentterm),然后为自己投一票;进一步地,向其它Follower节点发送投票请求,从而接收到投票请求的Follower节点会向任一Candidate节点投票。
而对于任一Follower节点来说,其投票规则的内容包括:在任期内,最多只能投一票;集群中此时无Leader节点。进一步地,Follower节点投票后,更新节点自身任期(current term)。
从而,基于上述过程,完成首轮投票。
首轮投票会出现两种投票结果,第一种,某个Candidate节点收到了多数投票,如拿到超过半数投票,则直接成为新的 Leader 节点,并通知其它所有节点选举完成,自己成为新的 Leader 节点;第二种,所有 Candidate节点均未获得多数投票,首轮投票未选举出新的Leader 节点。
而本实施例的应用场景,即第二种情况,在首轮投票未选举出新的Leader 节点后,开始执行步骤110。
需要说明的是,本实施例中的步骤110至步骤140,用于完成一个目标轮的投票,可以是重复执行的步骤。
例如,在首轮投票未选举出新的Leader 节点之后,开始进行第一个目标轮的投票。
在第一个目标轮的第一次投票中,N1个第一节点即首轮投票中的所有Candidate节点。
在第一个目标轮的第一次投票中,参考首轮投票方式,Follower节点继续给对应的Candidate节点投票,投票结束后,统计Candidate节点的第一投票数。而基于首轮投票可知,各Candidate节点的第一投票数均未超过所有票数的一半,因此,第一阈值可以是所有票数的一半。
需要说明的是,在第一个目标轮中,第一投票数不包括首轮投票中,Candidate节点投给自己的一票。
从而基于第一个目标轮的第一次投票,使Candidate节点能够代表一群给自己投票的Follower 节点。
假设,系统节点总数为N(不包括出现故障的节点,即上一任期的Leader 节点),Candidate节点的数量为C, Follower 节点的数量为 F,则满足:
步骤120:根据N1个第一节点的第一投票数,分别确定N1个第一节点对应的N1个时间阈值。
在该步骤中,将各Candidate节点所拥有 Follower 节点的数量作为权重基数,计算各自的选举超时时间,即时间阈值,从而可以得到N1个时间阈值。其中,N1个时间阈值中可能存在相同的至少两个时间阈值。
步骤130:在满足第一时间阈值的情况下,向N2个第一节点发送投票请求;其中,N1个时间阈值包括第一时间阈值,N2为正整数,且N2<N1,N2个第一节点不包括第一时间阈值对应的第一节点。
在该步骤中,基于投票请求,进行该目标轮的第二次投票。
在第二次投票中,为了便于区分,将所有的 Candidate 节点标记为 FollowerL2节点。
在该步骤中,第一时间阈值为N1个时间阈值中的最小值,其中,第一时间阈值对应的第一节点的数量为至少一个。
因此,在时间上,最先达到第一时间阈值。当达到第一时间阈值时,将第一时间阈值对应的FollowerL2节点标记为 CandidateL2节点,并询问所有的 FollowerL2 节点进行投票。
可选地,FollowerL2 节点接收到投票请求后,会根据以下的约束来进行投票:
在一个任期内,最多只能投一票;
集群中此时无LeaderL2 节点。
从而,在第二次投票中,任一FollowerL2 节点可向任一CandidateL2节点投票。
步骤140:在基于投票请求进行的目标轮的第二次投票中,根据第一时间阈值对应的第一节点的第二投票数,在第一时间阈值对应的第一节点中确定领导节点。
在该步骤中,根据第一时间阈值对应的第一节点的第二投票数,在第一时间阈值对应的第一节点中确定一个领导节点。
这时,如果可以成功确定,则完成选举;如果无法成功确定,则继续下一个目标轮的投票,以继续进行下一个重复过程。
从上述过程中,可以看出,在首轮投票失败的情况下,不需要所有的Follower节点重新给Candidate节点投票,而是在保留首轮投票结果的基础上,在Candidate节点中确定CandidateL2节点,由其余的Candidate节点(即FollowerL2节点)给CandidateL2节点进行投票,这样,可以使得参与候选的节点数量减少,从而降低选举失败的概率,缩短选举耗时。
其中,本实施例的流程可参见图2所示。
这样,在本申请的实施例中,在首轮投票失败的情况下,开启若干目标轮的投票,在任一目标轮的第一次投票中,可参考上一轮的投票方式,从而统计N1个第一节点的第一投票数,N1个第一节点可以是上一轮投票中有投票数的各节点,因此,N1个第一节点在目标轮中的第一投票数均小于第一阈值。然后,根据N1个第一节点在目标轮中的第一投票数确定N1个第一节点对应的N1个时间阈值,当达到其中的第一时间阈值时,向除第一时间阈值对应的第一节点以外的N2个第一节点,发送投票请求,以进行第二次投票,从而N2个第一节点可以向第一时间阈值对应的各第一节点进行投票,进而统计第一时间阈值对应的各第一节点的第二投票数,最后,在第一时间阈值对应的各第一节点中,确定一个领导节点。可见,基于本申请的实施例,在首轮投票未选举出领导节点的情况下,在后面的投票中,进行若干目标轮投票,在目标轮的投票中,通过两次投票,可以筛选掉一部分候选节点,从而减小候选节点的数量,降低选举的失败率,缩短选举耗时,加快集群故障恢复。
在本申请另一个实施例的系统配置方法的步骤流程中,步骤140,包括:
子步骤A1:在第一时间阈值对应的一个第一节点的第二投票数大于第二阈值的情况下,确定第一时间阈值对应的一个第一节点为领导节点。
在一种情况下,第一时间阈值对应的第一节点的数量为多个,只有一个第一节点的第二投票数大于第二阈值,则直接确定该第一节点为领导节点。
在另一种情况下,第一时间阈值对应的第一节点的数量为一个,且该第一节点的第二投票数大于第二阈值,则直接确定该第一节点为领导节点。
需要说明的是,节点在投票时,会有一个时间限制,即选举超时时间,若选举超时时间内未投票,则投票超时,该节点就不会进行投票。
对应上一实施例,若有CandidateL2 节点获得多数投票,则确定为 LeaderL2节点,LeaderL2节点将自身设置为 Leader 节点,并通知所有FollowerL2 和CandidateL2 节点,并由FollowerL2 和 CandidateL2节点通知对应的跟随其的各Follower 节点,已经选举出 Leader 节点。
在本实施例中,在任一个目标轮的投票中,若可以直接确定领导节点,则完成选举,不需要进行下一个目标轮的投票。
在本申请另一个实施例的系统配置方法的步骤流程中,步骤140,包括:
子步骤B1:在第一时间阈值对应的第一节点的第二投票数均小于或者等于第二阈值的情况下,基于第一时间阈值对应的第一节点,进行下一个目标轮的投票。
在本实施例中,在一个目标轮的投票中,还是不能选举出领导节点,则继续进行下一个目标轮的投票。
在下一个目标轮的投票中,上一个目标轮中的第一时间阈值对应的各第一节点,对应为N1个第一节点,其第一投票数可以是上一个目标轮的两次投票的累积。
例如,对于第二个目标轮的投票,N1个第一节点包括所有的CandidateL2 节点,即所有的CandidateL2节点变更为Candidate节点,第一投票数是第一个目标轮中两次投票之和,即其在第一次投票中作为Candidate 节点的投票数,与其在第二次投票中作为CandidateL2 节点的投票数之和,可以是第一个目标轮中的第一投票数和第二投票数之和。
进一步地,根据第二个目标轮的第一投票数,得到各Candidate节点的时间阈值,然后,在优先达到最小的时间阈值时,确定该时间阈值对应的Candidate 节点为CandidateL2节点,其余的Candidate 节点变为FollowerL2节点,从而FollowerL2节点向CandidateL2节点进行投票,若有CandidateL2节点中有票数较多的,则确定为LeaderL2节点。
可见,即使多个目标轮均未选举成功,但每进行一个目标轮的投票,候选节点的数量都会相应减小,即参与竞选的范围缩小,选举成功的概率越来越高。
在本实施例中,在任一个目标轮的投票中,若无法确定领导节点,则进行下一个目标轮的投票,以此重复,直至选举出领导节点。
在本申请另一个实施例的系统配置方法中,第二阈值为N2/2。
在该步骤中,第二阈值为总票数的一半,即当有票数过半的候选节点时,直接确定为领导节点。
在本实施例中,以票数超过总票数的一半,来定义票数较多,从而使得确定的领导节点是准确的。
在本申请另一个实施例的系统配置方法中,第一阈值为参与投票的总票数的一半。
在本申请另一个实施例的系统配置方法的步骤流程中,步骤140,包括:
子步骤C1:在第一时间阈值对应的至少两个第一节点的第二投票数相同、且第二投票数满足第一条件的情况下,在至少两个第一节点中确定领导节点。
通常,Raft 一致性选举算法的分布式主备系统配置奇数个节点,以提高选举速度。但是当领导节点发生故障时,该分布式主备系统将会变为偶数个节点,此时,有较高概率出现两个 Candidate节点的选票一样的情况,因此,在第一个目标轮的投票中,第一时间阈值对应的第一节点的数量也极易出现两个,甚至多个。
从而,在本实施例中,针对上述情况,进行了相应说明。第一时间阈值对应的第一节点的数量为多个,经投票,有至少两个第一节点的第二投票数是相同的,且第二投票数满足第一条件,如票数均较多,则需要进一步在第二投票数相同的第一节点中确定一个领导节点。
可参考地,在第二投票数相同的第一节点中,再进行一轮投票,相应地,第二投票数相同的第一节点为候选节点,N1个第一节点中除候选节点以外,剩余的第一节点进行投票。
可选地,第一条件的内容包括投票数最高。
在本实施例中,在任一个目标轮的投票中,若有投票数相同、且投票数较多的至少两个候选的第一节点,则在投票数相同的第一节点之间,继续进行至少一次投票,直到选举出领导节点。可见,每进行一次投票,参与候选的第一节点的数量就会相应减少,同样可以缩短选举时长。
在本申请另一个实施例的系统配置方法的流程中,在步骤110之前,该方法还包括:
步骤D1:在目标轮的第一次投票中,按照目标轮的上一轮的投票方式进行投票。
例如,第一个目标轮的第一次投票,其投票方式即,按照首轮投票中,Follower节点继续投票给对应的Candidate节点。
进一步地,第二个目标轮的投票,其投票方式即,按照第一个目标轮投票中,Follower节点继续投票给对应的Candidate节点,同时,叠加,FollowerL2节点继续投票给对应的CandidateL2节点。
在本实施例中,在减小投票范围的基础上,保留上一轮投票结果,不仅可以缩短选举时长,还可以提高选举准确率。
在本申请另一个实施例的系统配置方法中,第一节点的第一投票数与第一节点的时间阈值呈负相关。
在本实施例中,第一节点的第一投票数越多,第一节点的时间阈值越小。
可参考公式:
例如,在一个目标轮的第一次投票中,有五个Candidate节点,
从而得到:
可见,第一投票数越多,得到的时间阈值越小。
在本实施例中,第一投票数越多,相应的时间阈值越小,其对应的第一节点更倾向于成为候选节点。可见,本实施例通过时间阈值,来选择出候选节点,从而达到减少候选节点的数量的目的,而且选出的候选节点是拥有投票数最多的,还可以确保选出的候选节点是有所依据的,而非随机选择。
需要说明的是,集群中的节点收到选举完成,已产生新的 Leader 节点的消息时,Candidate 节点变更为Follower 节点,Follower 节点同步更新当前任期(currentterm)。
综上,本申请的目的是提出一种基于级联代表机制的集群选举方法,对 Raft 一致性选举算法进行优化,通过在 Candidate 节点间进行选举达到降低选举范围,快速确定Leader 节点,从而可以提高选举效率,避免在选举范围不变的情况下反复投票造成的时间消耗,提高系统的稳定性。基于此,本申请具有以下优点:
对于大规模集群来说,随机设定选举超时时间导致存在多个 Candidate 节点,使得选举失败的概率较高。而在级联选举过程中,会结合某个Candidate节点所代表节点数量调整超时时间,有助于将选举最终结果定位到初次选举获票较多节点,使得初次选举失败后的再次选举样本集指数级降低,提高选举效率,降低系统波动,同时也增强高可用性;针对大规模集群来说,该方法能减少选举样本集合,降低循环选举带来的大量选举请求,避免形成选举风暴,提高系统的稳定性。
本申请可应用于大规模分布式主备集群。面对复杂的基础网络环境及庞大的集群环境,基于循环重试选举的选举失败处理方式,将导致大量选举请求充斥整个环境,使得耗费大量资源进行选举。为了解决大规模分布式主备集群下选举耗时较长的问题,可以采用级联代表机制的选举优化算法,能够指数级降低在初次选举失败后的选举样本集,降低选举资源消耗,提高选举效率,进而提高系统稳定性,降低因为循环选举带来的稳定性风险。
参见图3,在本申请另一个实施例的系统配置装置的框图中,如图3所示,该系统配置装置可以包括如下:
获取模块10,用于基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,获取N1个第一节点的第一投票数;其中,N1为正整数,第一节点的投票数大于零;
第一确定模块20,用于根据N1个第一节点的第一投票数,分别确定N1个第一节点对应的N1个时间阈值;
发送模块30,用于在满足第一时间阈值的情况下,向N2个第一节点发送投票请求;其中,N1个时间阈值包括第一时间阈值,N2为正整数,且N2<N1,N2个第一节点不包括第一时间阈值对应的第一节点;
第二确定模块40,用于在基于投票请求进行的目标轮的第二次投票中,根据第一时间阈值对应的第一节点的第二投票数,在第一时间阈值对应的第一节点中确定领导节点。
这样,在本申请的实施例中,在首轮投票失败的情况下,开启若干目标轮的投票,在任一目标轮的第一次投票中,可参考上一轮的投票方式,从而统计N1个第一节点的第一投票数,N1个第一节点可以是上一轮投票中有投票数的各节点,因此,N1个第一节点在目标轮中的第一投票数均小于第一阈值。然后,根据N1个第一节点在目标轮中的第一投票数确定N1个第一节点对应的N1个时间阈值,当达到其中的第一时间阈值时,向除第一时间阈值对应的第一节点以外的N2个第一节点,发送投票请求,以进行第二次投票,从而N2个第一节点可以向第一时间阈值对应的各第一节点进行投票,进而统计第一时间阈值对应的各第一节点的第二投票数,最后,在第一时间阈值对应的各第一节点中,确定一个领导节点。可见,基于本申请的实施例,在首轮投票未选举出领导节点的情况下,在后面的投票中,进行若干目标轮投票,在目标轮的投票中,通过两次投票,可以筛选掉一部分候选节点,从而减小候选节点的数量,降低选举的失败率,缩短选举耗时,加快集群故障恢复。
可选地,第二确定模块40,包括:
第一确定单元,用于在第一时间阈值对应的一个第一节点的第二投票数大于第二阈值的情况下,确定第一时间阈值对应的一个第一节点为领导节点。
可选地,第二确定模块40,包括:
第二确定单元,用于在第一时间阈值对应的第一节点的第二投票数均小于或者等于第二阈值的情况下,基于第一时间阈值对应的第一节点,进行下一个目标轮的投票。
可选地,第二阈值为N2/2。
可选地,第二确定模块40,包括:
第三确定单元,用于在第一时间阈值对应的至少两个第一节点的第二投票数相同、且第二投票数满足第一条件的情况下,在至少两个第一节点中确定领导节点。
可选地,该装置还包括:
投票模块,用于在目标轮的第一次投票中,按照目标轮的上一轮的投票方式进行投票。
可选地,第一节点的第一投票数与第一节点的时间阈值呈负相关。
另外地,参见图4,示出了本申请一个实施例的电子设备的框图,如图4所示,该电子设备100,包括:存储器102、处理器101及存储在所述存储器102上并可在所述处理器101上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述系统配置方法。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述系统配置方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
本领域普通技术人员可以意识到,结合本申请实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种系统配置方法,其特征在于,所述方法包括:
基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,获取所述N1个第一节点的所述第一投票数;其中,N1为正整数,所述第一节点的投票数大于零;
根据所述N1个第一节点的第一投票数,利用公式:,分别确定所述N1个第一节点对应的N1个时间阈值;其中,在公式中,/>用于表示时间阈值,单位为毫秒,l用于表示集群选举超时时间的最小值,r 用于表示期望的超时时间区分区间值,N用于表示系统节点总数,/>用于表示所述第一投票数;
在满足第一时间阈值的情况下,向N2个所述第一节点发送投票请求;其中,所述N1个时间阈值包括所述第一时间阈值,N2为正整数,且N2<N1,N2个所述第一节点不包括所述第一时间阈值对应的第一节点;
在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点。
2.根据权利要求1所述的方法,其特征在于,所述在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点,包括:
在所述第一时间阈值对应的一个第一节点的第二投票数大于第二阈值的情况下,确定所述第一时间阈值对应的所述一个第一节点为领导节点。
3.根据权利要求1所述的方法,其特征在于,所述在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点,包括:
在所述第一时间阈值对应的第一节点的第二投票数均小于或者等于第二阈值的情况下,基于所述第一时间阈值对应的第一节点,进行下一个目标轮的投票。
4.根据权利要求2或3所述的方法,其特征在于,所述第二阈值为N2/2。
5.根据权利要求1所述的方法,其特征在于,所述在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点,包括:
在所述第一时间阈值对应的至少两个第一节点的第二投票数相同、且所述第二投票数满足第一条件的情况下,在所述至少两个第一节点中确定领导节点。
6.根据权利要求1所述的方法,其特征在于,所述基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,获取所述N1个第一节点的所述第一投票数之前,所述方法还包括:
在所述目标轮的第一次投票中,按照所述目标轮的上一轮的投票方式进行投票。
7.根据权利要求1所述的方法,其特征在于,所述第一节点的第一投票数与所述第一节点的时间阈值呈负相关。
8.一种系统配置装置,其特征在于,所述装置包括:
获取模块,用于基于目标轮的第一次投票,在N1个第一节点的第一投票数均小于第一阈值的情况下,获取所述N1个第一节点的所述第一投票数;其中,N1为正整数,所述第一节点的投票数大于零;
第一确定模块,用于根据所述N1个第一节点的第一投票数,利用公式:,分别确定所述N1个第一节点对应的N1个时间阈值;其中,在公式中,/>用于表示时间阈值,单位为毫秒,l用于表示集群选举超时时间的最小值,r 用于表示期望的超时时间区分区间值,N用于表示系统节点总数,/>用于表示所述第一投票数;
发送模块,用于在满足第一时间阈值的情况下,向N2个所述第一节点发送投票请求;其中,所述N1个时间阈值包括所述第一时间阈值,N2为正整数,且N2<N1,N2个所述第一节点不包括所述第一时间阈值对应的第一节点;
第二确定模块,用于在基于所述投票请求进行的所述目标轮的第二次投票中,根据所述第一时间阈值对应的第一节点的第二投票数,在所述第一时间阈值对应的第一节点中确定领导节点。
9.根据权利要求8所述的装置,其特征在于,所述第二确定模块,包括:
第一确定单元,用于在所述第一时间阈值对应的一个第一节点的第二投票数大于第二阈值的情况下,确定所述第一时间阈值对应的所述一个第一节点为领导节点。
10.根据权利要求8所述的装置,其特征在于,所述第二确定模块,包括:
第二确定单元,用于在所述第一时间阈值对应的第一节点的第二投票数均小于或者等于第二阈值的情况下,基于所述第一时间阈值对应的第一节点,进行下一个目标轮的投票。
11.根据权利要求8所述的装置,其特征在于,所述第二确定模块,包括:
第三确定单元,用于在所述第一时间阈值对应的至少两个第一节点的第二投票数相同、且所述第二投票数满足第一条件的情况下,在所述至少两个第一节点中确定领导节点。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
投票模块,用于在所述目标轮的第一次投票中,按照所述目标轮的上一轮的投票方式进行投票。
13.根据权利要求8所述的装置,其特征在于,所述第一节点的第一投票数与所述第一节点的时间阈值呈负相关。
14.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的系统配置方法。
15.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1至7任一项所述的系统配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310068406.2A CN115794478B (zh) | 2023-02-06 | 2023-02-06 | 系统配置方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310068406.2A CN115794478B (zh) | 2023-02-06 | 2023-02-06 | 系统配置方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115794478A CN115794478A (zh) | 2023-03-14 |
CN115794478B true CN115794478B (zh) | 2023-06-23 |
Family
ID=85430058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310068406.2A Active CN115794478B (zh) | 2023-02-06 | 2023-02-06 | 系统配置方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794478B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114268532A (zh) * | 2021-11-24 | 2022-04-01 | 华人运通(上海)云计算科技有限公司 | 一种基于Raft协议的竞选方法、分布式系统及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155780B (zh) * | 2015-04-02 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种基于时间的节点选举方法及装置 |
EP3553669A4 (en) * | 2016-12-30 | 2019-10-16 | Huawei Technologies Co., Ltd. | INCIDENT RECOVERY METHOD AND DEVICE, AND SYSTEM |
CN108810046A (zh) * | 2017-04-28 | 2018-11-13 | 华为技术有限公司 | 一种选举领导者Leader的方法、装置及设备 |
CN109150971B (zh) * | 2018-06-29 | 2020-10-23 | 腾讯科技(深圳)有限公司 | 超级节点投票和选举方法、装置和网络节点 |
CN112261135A (zh) * | 2020-10-22 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 基于一致性协议的节点选举方法、系统、装置及设备 |
CN114189421B (zh) * | 2022-02-17 | 2022-05-31 | 江西农业大学 | 一种领导者节点选举方法、系统、存储介质及设备 |
-
2023
- 2023-02-06 CN CN202310068406.2A patent/CN115794478B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114268532A (zh) * | 2021-11-24 | 2022-04-01 | 华人运通(上海)云计算科技有限公司 | 一种基于Raft协议的竞选方法、分布式系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115794478A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108616566B (zh) | raft分布式系统选主方法、相关设备及系统 | |
CN108122165B (zh) | 一种区块链共识方法及系统 | |
CN109660367B (zh) | 基于改进Raft算法的共识达成方法、装置与电子设备 | |
CN110431533B (zh) | 故障恢复的方法、设备和系统 | |
CN107453929B (zh) | 集群系统自构建方法、装置及集群系统 | |
CN106878473A (zh) | 一种消息处理方法、服务器集群及系统 | |
CN111010278B (zh) | 一种基于DPoS高容错分层共识方法 | |
CN106155780A (zh) | 一种基于时间的节点选举方法及装置 | |
CN112261135A (zh) | 基于一致性协议的节点选举方法、系统、装置及设备 | |
CN110162428A (zh) | 数据同步方法及装置、电子设备和计算机可读存储介质 | |
CN113630455B (zh) | 一种适用于物联网的Raft共识方法 | |
CN113014635A (zh) | 区块链系统的节点类型划分方法、装置及区块链系统 | |
CN109614403A (zh) | 集群服务节点的数据一致性校验方法及装置 | |
CN108647118B (zh) | 基于存储集群的副本异常恢复方法、装置及计算机设备 | |
CN113760468A (zh) | 分布式选举方法、装置、系统和介质 | |
CN115794478B (zh) | 系统配置方法、装置、电子设备及存储介质 | |
CN108388108B (zh) | 一种多重冗余控制系统中同步数据的方法及装置 | |
CN116260707B (zh) | 基于共识的区块链节点灾备方法、装置、设备及存储介质 | |
CN111770178A (zh) | 一种领导节点选举方法及系统 | |
CN110489568B (zh) | 生成事件图的方法、装置、存储介质和电子设备 | |
Liu et al. | D-Paxos: building hierarchical replicated state machine for cloud environments | |
CN114465879B (zh) | 管理节点选举方法及装置、存储介质及电子设备 | |
CN106850715A (zh) | 一种基于主机状态和优先级的主用主机动态选择方法 | |
CN115987998B (zh) | 微服务系统领袖者选举方法、系统、存储介质和电子设备 | |
CN115277719B (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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Patentee after: Tianyiyun Technology Co.,Ltd. Address before: 100093 Floor 4, Block E, Xishan Yingfu Business Center, Haidian District, Beijing Patentee before: Tianyiyun Technology Co.,Ltd. |