管理节点选举方法及装置、存储介质及电子设备与流程

文档序号:29969337发布日期:2022-05-11 11:03阅读:78来源:国知局
管理节点选举方法及装置、存储介质及电子设备与流程

1.本技术涉及分布式技术领域,尤其涉及一种管理节点选举方法及装置、存储介质及电子设备。


背景技术:

2.随着分布式技术的发展,分布式系统的应用越来越广泛,分布式系统为了保证其可靠性,一般都会多节点提供服务,部分节点的故障不会影响系统的可用性。对于分布式系统来说,在保证可用性的同时,数据的可靠性(不丢失)也是其要解决的核心问题。目前通用的方案是使用多副本存储。这就会引入一个新的问题:多个副本间的数据一致性的问题。
3.目前,通过一致性算法解决分布式系统中多副本之间数据一致性的问题,而raft算法正是为了探索一种更易于理解的一致性算法而产生的。
4.在raft算法中,会先选举出管理节点,管理节点负责接受所有客户端更新请求,然后复制到从属节点,并在“安全”的时候执行这些请求,如果管理节点故障,从属节点会重新选举出新的管理节点。raft算法在设计选举机制时,选择在每个从属节点上设置随机起始时间,然而,由于竞选信息在分布式环境传输过程中存在通信开销,在此过程中可能存在其余从属节点发起竞选,从而可能出现因选票瓜分而导致多次超时选举,从而影响分布式系统的可用性。


技术实现要素:

5.本技术提供了一种管理节点选举方法及装置、存储介质及电子设备,目的在于解决现有的管理节点选举方案因选票瓜分而导致多次超时选举,从而影响分布式系统的可用性的问题。
6.为了实现上述目的,本技术提供了以下技术方案:
7.一种管理节点选举方法,应用于分布式系统中的任意一个从属节点,所述方法包括:
8.在确定当前的管理节点发生故障的情况下,对预设的计时器进行重置处理,并对当前的任期号进行任期增加处理,得到新的任期号;
9.将自身的节点状态变更为备选节点的节点状态;
10.计算所述备选节点自身的历史异常日志计算值,所述历史异常日志计算值用于指示所述备选节点的稳定性程度;
11.基于所述新的任期号和所述历史异常日志计算值,生成管理节点竞选信息,并广播所述管理节点竞选信息至所述分布式系统中;
12.接收所述分布式系统中其他节点发送的信息;
13.当所述其他节点为其他从属节点时,若所述信息中包括的任期号不大于所述新的任期号,且所述信息中包括指示同意竞选的投票信息,则进行投票数加一处理;
14.当所述其他节点为其他备选节点时,若所述信息中包括的历史异常日志计算值不
大于所述备选节点的历史异常日志计算值,则由所述备选节点变更为从属节点,并进行投票数清零处理,并为所述其他备选节点投票;其中,所述其他备选节点为从属节点在确定当前的管理节点发生故障的情况下,对自身的节点状态变更的节点;
15.在当前的投票数大于预设阈值,或所述计时器当前的计时时间大于预设时间阈值,则将所述备选节点变更为新的管理节点,并广播心跳信息至各个其他节点,以告知其他节点已完成管理节点的选举。
16.上述的方法,可选的,所述计算所述备选节点自身的历史异常日志计算值,包括:
17.获取预设时间段内所述备选节点的节点运行信息;所述节点运行信息至少包括异常工作次数、正常工作次数、每次正常工作的工作时长、平均内存使用率和平均容量占用率;
18.基于所述节点运行信息,计算历史异常日志计算值。
19.上述的方法,可选的,还包括:
20.若所述信息中包括的任期号大于所述新的任期号,则将所述新的任期号变更为所述信息中包括的所述任期号;
21.进行投票数清零处理,并重置所述计时器;
22.将当前的节点状态变更为从属节点的节点状态。
23.上述的方法,可选的,所述确定当前的管理节点发生故障,包括:
24.基于预设的计时器当前的计时时间,判断在预设心跳时间内是否接收到当前的管理节点发送的心跳信息;
25.若预设心跳时间内接收到当前的管理节点发送的心跳信息,则确定当前的管理节点未发生故障;
26.预设心跳时间内未接收到当前的管理节点发送的心跳信息,则确定当前的管理节点发生故障。
27.上述的方法,可选的,所述确定当前的管理节点未发生故障之后,还包括:
28.执行预设的工作流程。
29.一种管理节点选举装置,应用于分布式系统中的任意一个从属节点,所述装置包括:
30.第一重置单元,用于在确定当前的管理节点发生故障的情况下,对预设的计时器进行重置处理,并对当前的任期号进行任期增加处理,得到新的任期号;
31.第一变更单元,用于将自身的节点状态变更为备选节点的节点状态;
32.计算单元,用于计算所述备选节点自身的历史异常日志计算值,所述历史异常日志计算值用于指示所述备选节点的稳定性程度;
33.生成单元,用于基于所述新的任期号和所述历史异常日志计算值,生成管理节点竞选信息,并广播所述管理节点竞选信息至所述分布式系统中;
34.接收单元,用于接收所述分布式系统中其他节点发送的信息;
35.第一处理单元,用于当所述其他节点为其他从属节点时,若所述信息中包括的任期号不大于所述新的任期号,且所述信息中包括指示同意竞选的投票信息,则进行投票数加一处理;
36.第二处理单元,用于当所述其他节点为其他备选节点时,若所述信息中包括的历
史异常日志计算值不大于所述备选节点的历史异常日志计算值,则由所述备选节点变更为从属节点,并进行投票数清零处理,并为所述其他备选节点投票;其中,所述其他备选节点为从属节点在确定当前的管理节点发生故障的情况下,对自身的节点状态变更的节点;
37.第二变更单元,用于在当前的投票数大于预设阈值,或所述计时器当前的计时时间大于预设时间阈值,则将所述备选节点变更为新的管理节点,并广播心跳信息至各个其他节点,以告知其他节点已完成管理节点的选举。
38.上述的装置,可选的,所述计算单元具体用于:
39.获取预设时间段内所述备选节点的节点运行信息;所述节点运行信息至少包括异常工作次数、正常工作次数、每次正常工作的工作时长、平均内存使用率和平均容量占用率;
40.基于所述节点运行信息,计算历史异常日志计算值。
41.上述的装置,可选的,还包括:
42.第三变更单元,用于若所述信息中包括的任期号大于所述新的任期号,则将所述新的任期号变更为所述信息中包括的所述任期号;
43.第二重置单元,用于进行投票数清零处理,并重置所述计时器;
44.第四变更单元,用于将当前的节点状态变更为从属节点的节点状态。
45.一种存储介质,所述存储介质存储有指令集,其中,所述指令集被处理器执行时实现如上述的管理节点选举方法。
46.一种电子设备,其特征在于,包括:
47.存储器,用于存储至少一组指令集;
48.处理器,用于执行所述存储器中存储的指令集,通过执行所述指令集实现如上述的管理节点选举方法。
49.与现有技术相比,本技术包括以下优点:
50.本技术提供了一种管理节点选举方法及装置、存储介质及电子设备,该方法包括:通过在计时器当前的计时时间大于预设时间阈值的情况下,直接将备选节点变更为新的管理节点,以及在管理节点竞选信息中加入历史异常日志计算值,以基于管理节点竞选信息中的历史异常日志计算值,选取出稳定性更好的备选节点作为新的管理节点,从而避免多个备选节点瓜分选票导致选举超时,以及排除稳定性较差的备选节点,增强分布式系统的鲁棒性,并减少了选举耗时,进而提高了管理节点的选举效率。
附图说明
51.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
52.图1为现有技术的一种管理节点选举方法的方法流程图;
53.图2为本技术提供的一种管理节点选举方法的方法流程图;
54.图3为本技术提供的一种管理节点选举方法的又一方法流程图;
55.图4为本技术提供的一种管理节点选举方法的再一方法流程图;
56.图5为本技术提供的一种管理节点选举装置的结构示意图;
57.图6为本技术提供的一种电子设备的结构示意图。
具体实施方式
58.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
59.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
60.需要注意,本技术公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
61.需要注意,本技术公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
62.本技术可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
63.参阅图1,图1示出了现有的管理节点选举方案,包括:
64.raft算法使用心跳触发管理节点leader选举。当服务器启动时,初始化从属节点follower。leader向所有followers周期性发送心跳信息。如果follower在选举超时时间内没有收到leader的心跳,就会等待一段随机的时间后发起一次管理节点选举。每一个follower都有一个计时器,是一个随机的值,表示的是follower等待成为leader的时间,计时器先计时到预设心跳时间的follower最先发起管理节点选举。
65.follower在计时器的计时时间达到预设心跳时间后,若仍为接收到管理节点发送的心跳信息,则发起选举,具体的,由从属节点切换为备选节点candidate,增加本地任期值,给自己投一票,并广播竞选信息,等待其他节点的回复,在这个过程中,根据来自其他节点的消息,可能会出现三种结果:
66.(1)收到超过半数的节点的投票(含自己的一票),则赢得选举,变更为管理节点;
67.(2)被告知别的节点已当选,并切换至从属节点;
68.(3)预设时间段内没有收到超过半数的节点的投票,则继续保持candidate的节点状态,重新发起选举。
69.现有的管理节点选举方案中,当第一个从属节点在超时时间未收到心跳信息时,将修改节点状态为备选节点,增加任期,并广播竞选信息requestvote rpc。然而,由于节点之间存在通信开销,存在一定概率使得另外的从属节点在未收到上述竞选信息时也达到超时时间。当上述情况出现时,每个备选节点临近的从属节点将会优先接收到来自此备选节点的竞选信息,从而在分布式系统中形成多个选票分区,从而因选票瓜分而导致的超时选
举,同时也可能出现选举出的新管理节点在稳定性程度上不能胜任工作的情况。
70.因此,本技术提供一种管理节点选举方法及装置、存储介质及电子设备,能够解决现有的管理节点选举方案因选票瓜分而导致的超时选举,以及选举出的新管理节点在稳定性程度上不能胜任工作的问题。
71.本技术实施例提供了一种管理节点选举方法,该方法可以应用在分布式系统,其执行主体可以为分布式系统中的任意一个从属节点,所述方法的流程图如图2所示,具体包括:
72.s201、在确定当前的管理节点发生故障的情况下,对预设的计时器进行重置处理,并对当前的任期号进行任期增加处理,得到新的任期号。
73.本实施例中,从属节点在确定当前的管理节点发生故障的情况下,对当前的任期号进行任期增加处理,示例性的,可以是任期号加一处理,也可以是对任期号进行加二处理。需要说明的是,本技术不对任期号的增幅进行限制。
74.本实施例中,需要说明的是,每个节点对应一个任期号,不同的节点可以对应相同的任期号,不同的节点也可以对应不同的任期号,此时的节点包括管理节点和从属节点。
75.其中,对预设的计时器进行重置处理的过程,包括,对计时器的计时结果进行清零处理。
76.本实施中,当前的任期号为该从属节点自身当前的任期号。
77.参阅图3,从属节点确定当前的管理节点发生的故障的过程,具体包括以下步骤:
78.s301、基于预设的计时器当前的计时时间,判断在预设心跳时间内是否接收到当前的管理节点发送的心跳信息,若是,执行s302,若否,执行s303。
79.本实施例中,基于计时器当前的计时时间,判断是否在预设心跳时间内接收到当前的管理节点发送的心跳信息。
80.s302、确定当前的管理节点未发生故障。
81.本实施例中,若在预设心跳时间内接收到当前管理节点发送的心跳信息,也就是说,若预设的计时器当前的计时时间不大于预设心跳时间,且接收到当前的管理节点发送的心跳信息,则确定当前的管理节点未发生故障。
82.s303、确定当前的管理节点发生故障。
83.本实施中,若预设心跳时间内未接收到当前管理节点发送的心跳信息,也就是说,若预设的计时器当前的计时时间大于预设心跳时间,且未接收到当前的管理节点发送的心跳信息,则确定当前的管理节点发生故障。
84.s202、将自身的节点状态变更为备选节点的节点状态。
85.本实施例中,对预设的计时器进行重置处理,并将自身的节点状态变更为备选节点的节点状态,也就是由从属节点变更为备选节点。
86.s203、计算备选节点自身的历史异常日志计算值。
87.本实施例中,获取该备选节点的节点运行信息,基于该备选节点的节点运行信息,计算该备选节点自身的历史异常日志计算值。其中,历史异常日志计算值用于指示备选节点的稳定性程度。
88.其中,历史异常日志计算值越小越稳定。
89.参阅图4,计算备选节点自身的历史异常日志计算值的过程,具体包括以下步骤:
90.s401、获取预设时间段内备选节点的节点运行信息。
91.本实施例中,预先对分布式系统中的每个节点定时设置统一物理时间戳,每个节点在任意两个物理时间戳之间的时间段内出现异常工作时,也就是出现异常响应事件时,对该异常响应事件进行异常事件编码,并在完成异常事件编码后,将对异常响应事件进行日志记录,可选的,还可以对日志进行存储。
92.本实施例中,还可以对连续两次异常响应事件之间的正常工作时间进行记录。
93.可选的,各个异常时间编码都有对应的恢复编码。
94.本实施例中,获取预设时间段内备选节点的节点运行信息,其中,节点运行信息至少包括异常工作次数,正常工作次数、每次正常工作的工作时长、平均内存使用率和评论容量占有率。需要说明的是,预设时间段为最近两个物理时间戳之间的时间区间。
95.本实施例中,可以通过该备选节点预先存储的日志,获取该备选节点在最近两个物理时间戳之间的时间区间内,该备选节点异常工作次数,正常工作次数,每次正常工作的工作时长。
96.s402、基于节点运行信息,计算历史异常日志计算值。
97.本实施例中,基于节点运行信息,计算历史异常日志计算值。其中,该历史异常计算值作为评价节点稳定性的数值指标,具体的,基于节点运行信息,通过预设计算公式,计算历史异常日志计算值。
98.其中,预设计算公式为:
[0099][0100]
其中,sf表示历史异常日志计算值,t表示预设时间段,n表示异常工作次数,m表示正常工作次数,ti表示每次正常工作的时长,c表示节点容量及内存使用情况,其中,表示每次正常工作的时长,c表示节点容量及内存使用情况,其中,表示预设时间段内的平均内存使用率,表示预设的平均容量占用率,
[0101]
本实施例中,表示在预设时间段内的正常工作的总时长。
[0102]
本实施例中,历史异常日志计算值为无符号浮点数,介于[0,n]之间,数值越小,表示该备选节点在预设时间段内的稳定性越好。
[0103]
本实施例中,对步骤s402的具体实现过程进行举例说明如下:
[0104]
设置2次物理时间戳之间的预设时间段为8.64
×
107ms,备选节点a在预设时间段内的异常工作次数为28次,平均内存使用率为0.5,容量使用率为0.6,正常工作总时长为7.59
×
107ms;根据预设计算公式可知,sf(a)≈1.02。
[0105]
s204、基于新的任期号和历史异常日志计算值,生成管理节点竞选信息,并广播管理节点竞选信息至分布式系统中。
[0106]
本实施例中,基于新的任期号和历史异常日志计算值,生成管理节点竞选信息,具体的,基于备选节点标识、备选节点的最新日志项、备选节点最新日志项对应的任期号、备选节点的新的任期号和历史异常日志计算值,生成管理节点竞选信息requestvote rpc,
[0107]
管理节点竞选信息包括的参数如表1所示:
[0108][0109][0110]
表1管理节点竞选信息表
[0111]
本实施例中,在生成管理节点竞选信息后,广播管理节点竞选信息至分布式系统中,也就是将管理节点竞选信息广播至分布式系统包括的各个节点中。
[0112]
需要说明的是,在广播管理节点竞选信息之前,还可以出备选节点自身的投票数进行初始化。
[0113]
s205、接收分布式系统中其他节点发送的信息。
[0114]
本实施例中,接收分布式系统其它节点发送的信息,其中,其它节点包括其它从属节点或其他备选节点。
[0115]
若其他节点为其他从属节点,则信息中至少包括该其他从属节点的任期号和指示是否同意竞选的投票信息,其中,其他从属节点的任期号为该其他从属节点的最新任期号。
[0116]
若其他节点为其他备选节点,则信息为其他备选节点的管理节点竞选信息,该管理节点竞选信息中包括该其他备选节点的备选节点标识、最新日志项、最新日志项对应的任期号、新的任期号和历史异常日志计算值。
[0117]
其中,其他备选节点为从属节点在确定当前的管理节点发生故障的情况下,对自身的节点状态变更的节点。
[0118]
需要说明的是,在竞选阶段,分布式系统中的任意一个节点均可以在确定出当前的管理节点发生故障的情况下,对自身的节点状态变更为备选节点的节点状态,并广播管理节点竞选信息。需要说明的是,任意一个备选节点的管理节点竞选信息中包括历史异常日志计算值的计算过程均同实施例图4包括的各个步骤类似,此处不再赘述。
[0119]
s206、判断其他节点是否为其他从属节点,若是,执行s207,若否,执行s208。
[0120]
本实施例中,判断其他节点是否为其他从属节点,具体的,判断信息是否为管理节点竞选信息,若信息不为管理节点竞选信息,则确定其他节点为其他从属节点,若信息为管理节点竞选信息,则确定其他节点为其他备选节点。
[0121]
s207、判断信息中包括的任期号是否大于新的任期号,若是,执行s209,若否,执行
s210。
[0122]
本实施例中,若其他节点为其他从属节点,则进一步判断信息中包括的任期号是否大于新的任期号,也就是判断其他从属节点的当前任期号是否大于该备选节点的新的任期号。
[0123]
s208、判断信息中包括的历史异常日志计算值是否大于备选节点的历史异常日志计算值,若否,执行s211,若是,执行s212。
[0124]
本实施例中,若其他节点为其他备选节点,则进一步判断信息中包括的历史异常计算值是否大于备选节点的历史异常日志计算值。
[0125]
举例说明如下:
[0126]
当选举阶段存在2个备选节点时,设置2次物理时间戳之间的预设时间段为8.64
×
107ms,备选节点a在预设时间段内的异常工作次数为28次,平均内存使用率为0.5,容量使用率为0.6,正常工作总时长为7.59
×
107ms;节点b在预设时间段内的异常工作次数为19次,平均内存使用率为0.75,容量使用率为0.8,正常工作总时长为5.41
×
107ms。根据预设计算公式可知,sf(a)≈1.02,sf(b)≈4.26,由此得出节点a的历史异常日志计算值小于节点b的历史异常日志计算值,由此判断备选节点a稳定性优于备选节点b。
[0127]
s209、执行第一操作。
[0128]
本实施例中,若信息中包括的任期号大于新的任期号,则执行第一步骤。
[0129]
其中,第一操作包括:
[0130]
将新的任期号变更为信息中包括的任期号;
[0131]
进行投票数清零处理,并重置计时器;
[0132]
将当前的节点状态变更为从属节点的节点状态。
[0133]
本实施例中,若信息中包括的任期号大于新的任期号,则将该备选节点的新的任期号变更为信息中包括的任期号,进行投票数清零处理,并重置计时器,将当前的节点状态变更为从属节点的节点状态,也就是由备选节点变更为从属节点。
[0134]
s210、判断信息中包括的投票信息是否指示同意竞选,若是,执行s213,若否,执行s212。
[0135]
本实例中,若信息中包括的任期号不大于新的任期号,则进一步判断信息中包括的投票信息是否指示同意竞选,也就是判断信息中的votegranted字段是否为true,若信息中的votegranted字段为true,则确定信息中包括的投票信息指示同意竞选,若信息中的votegranted字段为false,则确定信息中包括的投票信息指示不同意竞选。
[0136]
s211、由备选节点变更为从属节点,并进行投票数清零处理,并为其他备选节点投票。
[0137]
本实施例中,若信息中包括的历史异常日志计算值不大于备选节点的历史异常日志计算值,也就是信息中包括的历史异常日志计算值小或等于备选节点的历史异常日志计算值,则说明其他备选节点比该备选节点的运行更稳定,并控制备选节点由备选节点变更为从属节点,并对自身的投票数进行清零处理,放弃竞选,以及为其他备选节点投票。
[0138]
其中,为其他备选节点投票的过程请参见现有技术,此处不再赘述。
[0139]
s212、判断计时器当前的计时时间是否大于预设时间阈值,若是,执行s214,若否,返回执行s205。
[0140]
本实施例中,若信息中包括的投票信息指示不同意竞选,或当前的投票数不大于预设阈值,则进一步判断计时器当前的计时时间是否大于预设时间阈值。
[0141]
s213、进行投票数加一处理。
[0142]
本实施例中,若信息中包括的投票信息指示同意竞选,则进行投票数加一处理。
[0143]
本实施例中,在对投票数进行加一处理后,执行步骤s215。
[0144]
s214、将备选节点变更为新的管理节点,并广播心跳信息至各个其他节点,以告知其他节点已完成管理节点的选举。
[0145]
本实施例中,若计时器当前的计时时间大于预设时间阈值,或当前的投票数大于预设阈值,则将备选节点变更为新的管理节点,并广播心跳信息至各个其他节点,以告知其他节点已完成管理节点的选举。
[0146]
s215、判断当前的投票数是否大于预设阈值,若是,执行s214,若否,执行s212。
[0147]
本实施例中,判断当前的投票数是否大于预设阈值,其中预设阈值基于分布式系统包括的节点的数量所确定,示例性的,预设阈值可以等于节点的数量的一半。若当前的投票数大于预设阈值,则说明超过半数的节点给该备选节点投票。
[0148]
本技术实施例提供的管理节点选举方法,通过在计时器当前的计时时间大于预设时间阈值的情况下,直接将备选节点变更为新的管理节点,以及在管理节点竞选信息中加入历史异常日志计算值,以基于管理节点竞选信息中的历史异常日志计算值,选取出稳定性更好的备选节点作为新的管理节点,从而避免多个备选节点瓜分选票导致选举超时,以及排除稳定性较差的备选节点,增强分布式系统的鲁棒性,并减少了选举耗时,进而提高了管理节点的选举效率。
[0149]
本技术实施例提供的管理节点选举方法中,在步骤s302之后,还可以包括:
[0150]
执行预设的工作流程。
[0151]
本实施例中,在确定当前的管理节点未发故障之后,从属节点执行预设的工作流程。其中预设的工作流程为现有的从属节点正常工作流程,此处不再赘述。
[0152]
需要说明的是,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
[0153]
应当理解,本技术公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本技术公开的范围在此方面不受限制。
[0154]
与图1所述的方法相对应,本技术实施例还提供了一种管理节点选举装置,用于对图1中方法的具体实现,该装置应用于分布式系统,该装置的其结构示意图如图5示,具体包括:
[0155]
第一重置单元501,用于在确定当前的管理节点发生故障的情况下,对预设的计时器进行重置处理,并对当前的任期号进行任期增加处理,得到新的任期号;
[0156]
第一变更单元502,用于将自身的节点状态变更为备选节点的节点状态;
[0157]
计算单元503,用于计算所述备选节点自身的历史异常日志计算值,所述历史异常日志计算值用于指示所述备选节点的稳定性程度;
[0158]
生成单元504,用于基于所述新的任期号和所述历史异常日志计算值,生成管理节
点竞选信息,并广播所述管理节点竞选信息至所述分布式系统中;
[0159]
接收单元505,用于接收所述分布式系统中其他节点发送的信息;
[0160]
第一处理单元506,用于当所述其他节点为其他从属节点时,若所述信息中包括的任期号不大于所述新的任期号,且所述信息中包括指示同意竞选的投票信息,则进行投票数加一处理;
[0161]
第二处理单元507,用于当所述其他节点为其他备选节点时,若所述信息中包括的历史异常日志计算值不大于所述备选节点的历史异常日志计算值,则由所述备选节点变更为从属节点,并进行投票数清零处理,并为所述其他备选节点投票;其中,所述其他备选节点为从属节点在确定当前的管理节点发生故障的情况下,对自身的节点状态变更的节点;
[0162]
第二变更单元508,用于在当前的投票数大于预设阈值,或所述计时器当前的计时时间大于预设时间阈值,则将所述备选节点变更为新的管理节点,并广播心跳信息至各个其他节点,以告知其他节点已完成管理节点的选举。本技术实施例提供的管理节点选举装置,通过在计时器当前的计时时间大于预设时间阈值的情况下,直接将备选节点变更为新的管理节点,以及在管理节点竞选信息中加入历史异常日志计算值,以基于管理节点竞选信息中的历史异常日志计算值,选取出稳定性更好的备选节点作为新的管理节点,从而避免多个备选节点瓜分选票导致选举超时,以及排除稳定性较差的备选节点,增强分布式系统的鲁棒性,并减少了选举耗时,进而提高了管理节点的选举效率。
[0163]
在本技术的一个实施例中,基于前述方案,计算单元503具体用于:
[0164]
获取预设时间段内所述备选节点的节点运行信息;所述节点运行信息至少包括异常工作次数、正常工作次数、每次正常工作的工作时长、平均内存使用率和平均容量占用率;
[0165]
基于所述节点运行信息,计算历史异常日志计算值。
[0166]
在本技术的一个实施例中,基于前述方案,还可以配置为:
[0167]
第三变更单元,用于若所述信息中包括的任期号大于所述新的任期号,则将所述新的任期号变更为所述信息中包括的所述任期号;
[0168]
第二重置单元,用于进行投票数清零处理,并重置所述计时器;
[0169]
第四变更单元,用于将当前的节点状态变更为从属节点的节点状态。
[0170]
在本技术的一个实施例中,基于前述方案,第一重置单元501在定当前的管理节点发生故障时,具体用于:
[0171]
基于预设的计时器当前的计时时间,判断在预设心跳时间内是否接收到当前的管理节点发送的心跳信息;
[0172]
若预设心跳时间内接收到当前的管理节点发送的心跳信息,则确定当前的管理节点未发生故障;
[0173]
预设心跳时间内未接收到当前的管理节点发送的心跳信息,则确定当前的管理节点发生故障。
[0174]
在本技术的一个实施例中,基于前述方案,第一重置单元501在定当前的管理节点发生故障时,还可以用于:
[0175]
执行预设的工作流程。
[0176]
本技术实施例还提供了一种存储介质,所述存储介质存储有指令集,其中,在所述
指令集运行时执行如上文任一实施例公开的管理节点选举方法。
[0177]
本技术实施例还提供了一种电子设备,其结构示意图如图6所示,具体包括存储器601,用于存储至少一组指令集;处理器602,用于执行所述存储器中存储的指令集,通过执行所述指令集实现如上文任一实施例公开的管理节点选举方法。
[0178]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
[0179]
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本技术公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0180]
以上描述仅为本技术公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1