一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种信息处理方法、装置和电子设备与流程

2022-02-19 23:55:10 来源:中国专利 TAG:


1.本技术涉及信息技术领域,更具体的说,是涉及一种信息处理方法、装置和电子设备。


背景技术:

2.在分布式存储系统中,为了节约成本,构建可扩展的两节点集群受到了广泛关注。两节点集群中的仲裁节点(witness)用于区分节点故障和脑裂场景,是必不可少的,而三节点的集群不再需要仲裁节点(witness),这给集群扩展时对witness的处理带来了挑战。
3.现有技术中,在两节点集群扩展到三节点再变回两节点过程中,
4.在集群扩展到三节点时,需要将witness移除,而变成两节点时,需要将witness重新加回,因此,在集群扩缩容期间,对witness的移除及引入操作会导致业务上的阻塞。


技术实现要素:

5.有鉴于此,本技术提供了一种信息处理方法,如下:
6.一种信息处理方法,应用于与集群相连的第一节点,所述方法包括:
7.接收第一从节点发送的投票请求,所述投票请求表征所述第一从节点在第一预设时间段未接收到主节点的第一心跳;
8.基于满足投票条件,为所述第一从节点投票;基于不满足投票条件,禁止为所述第一从节点投票;
9.其中,基于所述集群包括主节点和一个从节点,为所述第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除;禁止为所述第一从节点投票,以禁止所述第一从节点作为新的主节点执行业务;
10.其中,基于所述集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除;所述第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除。
11.可选的,上述的方法,从节点的投票权重是1,所述第一节点投票权重大于0小于1,
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.图1是本技术提供的一种信息处理方法实施例1的流程图;
45.图2是本技术提供的一种信息处理方法实施例1中集群示意图;
46.图3是本技术提供的现有技术和本技术提供的一种信息处理方法中集群扩缩容示
意图;
47.图4是本技术提供的一种信息处理方法实施例2的流程图;
48.图5是本技术提供的一种信息处理方法实施例2集群中脑裂故障的投票示意图;
49.图6是本技术提供的一种信息处理方法实施例3的流程图;
50.图7是本技术提供的一种信息处理方法实施例4的流程图;
51.图8是本技术提供的一种信息处理方法实施例5的流程图;
52.图9是本技术提供的一种信息处理装置实施例的结构示意图;
53.图10是本技术提供的一种信息处理系统实施例的结构示意图。
具体实施方式
54.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
55.如图1所示的,为本技术提供的一种信息处理方法实施例1的流程图,该方法应用于一电子设备,该电子设备作为与集群相连的第一节点,该方法包括以下步骤:
56.步骤s101:接收第一从节点发送的投票请求;
57.其中,所述投票请求表征所述第一从节点在第一预设时间段未接收到主节点的第一心跳。
58.而且,第一从节点在第一预设时间段未接收到主节点的第一心跳,该第一从节点判定当前集群出现故障,其向主节点和第一节点发起投票,并暂停接收客户端的服务请求。
59.其中,集群中包括两个或者三个节点,具体的:一个主节点和一个从节点,或者是一个主节点和两个从节点。集群中主节点能够控制从节点的加入或者移除,而从节点并无权限控制其他从节点的加入以及主节点和其他从节点的移除。
60.具体实施中,集群中所有的操作日志由主节点同步给从节点,从节点将其日志同步给主节点,从节点之间不进行日志同步。
61.具体的,节点之间的日志同步是通过心跳实现。
62.如图2所示的为集群示意图,其中(1)中所示的为两节点集群,该集群中包括一个主节点和一个从节点,主节点、从节点之间通过心跳实现两节点通信;其中(2)中所示的为三节点集群,该集群中包括一个主节点和两个从节点,主节点和从节点之间实现三节点通信,主节点和两个从节点之间通过心跳交互,两个从节点之间无心跳交互。
63.具体的,当第一从节点在第一预设时间段内未接收到主节点的第一心跳时,其向第一节点发送投票请求。第一节点基于该投票请求进行判断当前集群是否满足投票条件。
64.例如,主节点向第一从节点发送第一心跳的周期是1秒,而该第一预设时间段可以是大于发送第一心跳的周期的时间,如3秒或者5秒等,本技术中不对于发送心跳的周期以及该第一预设时间段的取值做限制。
65.需要说明的是,只有从节点发起投票请求,主节点无需投票。因为主节点不会为从节点投票,其他从节点为从节点投票,第一节点基于是否满足投票条件确定是否为从节点发起投票。
66.步骤s102:判断是否满足投票条件;
67.其中,第一节点基于当前集群的情况进行判断,是否满足投票条件,如果满足,执行步骤s103;否则,执行步骤s104。
68.步骤s103:为所述第一从节点投票;
69.步骤s104:禁止为所述第一从节点投票。
70.其中,基于所述集群包括主节点和一个从节点,为所述第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除;禁止为所述第一从节点投票,以禁止所述第一从节点作为新的主节点执行业务;
71.其中,基于所述集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除;所述第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除。
72.需要说明的是,本技术中,采用的是raft算法。
73.具体的,raft通过当选的领导者(主节点)达成共识。集群中的服务器(节点)是领导者(主节点)或追随者(从节点),并且在选举的精确情况下可以是候选者(领导者不可用)。领导者负责将日志复制到追随者。它通过发送心跳消息定期通知追随者它的存在。每个跟随者都有一个超时,它期望领导者的心跳。接收心跳时重置超时。如果在超时时间到期没有收到心跳,则追随者将其状态更改为候选人并开始领导选举。
74.需要说明的是,raft算法遵从大多数原则,集群中的所有操作日志由主节点同步给从节点,当得到大多数节点接受之后,才可以被应用到状态机。主节点定时向从节点发送心跳,而且,raft算法中提供了日志同步(保证主从节点数据一致性)、选举(选举主节点)、投票等功能。一般地,raft算法需要至少三个节点(大多数原则)才能工作。
75.本实施例中,在两节点集群中,第一节点可以看作raft中的虚拟节点,不存储具体的数据,不接受raft日志,其仅是对于从节点请求投票时进行判断是否投票,并在满足投票条件时,对于该从节点进行投票。
76.其中,从节点的投票权重是1,所述第一节点投票权重大于0小于1,
77.其中,基于所述集群包括主节点和一个从节点,所述第一节点和第一从节点为第一从节点投票,以使得对于所述第一从节点的投票数超过集群中节点总数的一半;所述第一节点禁止为第一从节点投票,以使得对于所述第一从节点的投票数不超过集群中节点总数的一半;
78.其中,基于所述集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,以使得对于所述第一从节点的投票数超过集群中节点总数的一半;所述第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,以使得对于所述第一从节点的投票数超过集群中节点总数的一半。
79.具体的,由于第一节点的投票权重小于1,当集群仅有主节点和从节点,该第一节点的投票具有决定性,而集群中有主节点和两个从节点时,发起投票请求的第一从节点为自己投票,第二从节点为该第一从节点投票,该第一从节点得到两票,超过该集群的节点半数,无论该第一节点是否为该第一从节点投票,不影响投票结果,只要遵循节点大多数的原则。因此,在集群从两节点集群扩展到三节点时,无需将第一节点移除,而在三节点变回两
节点时,也无需将第一节点加回,不会导致集群扩缩容其间,对于第一节点的移除以及引入操作使得业务上的阻塞。
80.如图3所示为现有技术和本技术提供的一种信息处理方法中集群扩缩容示意图,现有技术中包括:两节点扩展到三节点,从两个节点和一个仲裁节点,变为三个节点,期间移除仲裁节点;三节点缩回到两节点,是从三个节点,变为两个节点和仲裁节点,其中,添加仲裁节点,上述集群扩展和缩容过程中,需要移除以及添加仲裁节点。本方案中,包括:两节点扩展到三节点,是从两个节点和第一节点,变为三个节点和第一节点;三个节点缩回两个节点,是从三个节点和第一节点,变为两个节点和第一节点,上述集群扩展和缩容过程中,不需要移除和添加第一节点。
81.综上,本实施例提供的一种信息处理方法,第一从节点在第一预设时间段未接收到主节点的第一心跳向第一节点发起投票请求,基于满足投票条件,第一节点为第一从节点投票;基于不满足投票条件,第一节点禁止为第一从节点投票;其中,若集群包括主节点和一个从节点,第一节点为第一从节点投票,使得该第一从节点作为集群中新的主节点执行业务并将原主节点移除;禁止为第一从节点投票,以禁止第一从节点作为新的主节点执行业务;其中,若集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,第一从节点作为集群中新的主节点执行业务并将原主节点移除;第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,第一从节点仍然可以作为集群中新的主节点执行业务并将原主节点移除。本方案中,由于第一节点的投票权,在两节点集群中,其投票起到决定作用;而在三节点集群中,该第一节点的投票并无实质性作用。所以,在两节点集群扩展到三节点再变回两节点的过程中,无需对第一节点移除后再加入集群的操作,减少由于执行该操作过程导致读写业务的阻塞时间。
82.如图4所示的,为本技术提供的一种信息处理方法实施例2的流程图,该方法包括以下步骤:
83.步骤s401:接收主节点发送的第二心跳,所述第二心跳携带约定参数;
84.其中,第一节点接收主节点向其发送的第二心跳,该第二心跳仅包括约定参数,而不包括日志内容。
85.该第一节点是作为仲裁节点应用,其仅是对于集群发生故障时进行投票仲裁。
86.所以,主节点和从节点均不将日志内容同步给第一节点。
87.其中,第一节点能够基于主节点发送的第二心跳确定该主节点正常运行,未发生故障。
88.步骤s402:记录所述约定参数,所述约定参数包括租约信息;
89.具体的,该第一节点对于主节点通过第二心跳发送的约定参数,
90.具体的,该约定参数包括租约信息以及主节点身份标识等,主节点基于该租约信息与第一节点约定租期,在租期范围内,第一节点认同发送租约信息的节点作为集群的主节点。
91.其中,该租约信息约定的租期大于第二心跳的周期。
92.例如,第二心跳的周期是1秒,该租约信息约定的租期可以是4秒、5秒等大于该第二心跳的周期的值。
93.由于网络延迟等各种情况,导致第一节点接收到第二心跳的时间可能会大于该周
期,因此,在心跳周期未接收到第二心跳,但是在该约定租期内接收到第二心跳即可认定该主节点正常运行,未故障。
94.需要说明的是,该第一节点每次接收到第二心跳均基于其中的租约信息,更新第一节点与主节点的约定周期。
95.步骤s403:接收第一从节点发送的投票请求;
96.其中,步骤s403与实施例1中的步骤s101一致,本实施例中不做赘述。
97.步骤s404:基于所述约定参数,判断在接收到所述投票请求的时刻与所述主节点的租约是否到期;
98.其中,基于该约定参数中记载的约定租期,判断接收到投票请求的时刻,第一节点与主节点的租约是否到期。
99.具体的,接收到投票请求的时刻与接收到携带该约定参数的第二心跳的时刻的时间差,判断时间差是否大于该约定租期。
100.作为一个示例,接收到投票请求的时刻是12:23:55’26,接收到第二心跳的时刻是12:23:54’26,约定租期是5秒,两个时刻的时间差是1秒,小于约定租期,租约未到期。
101.作为一个示例,接收到投票请求的时刻是12:23:59’26,接收到第二心跳的时刻是12:23:53’26,约定租期是5秒,两个时刻的时间差是6秒,大于约定租期,租约到期。
102.其中,如果未到期,即在约定租期内,第一节点与主节点维持租约关系,不满足投票条件,执行步骤s408,以使得所述第一从节点在第二预设时间段后继续发送投票请求;
103.其中,在约定租期内,第一节点维持租约关系,可以判定该主节点正常未故障,而第一从节点未能在第一预设时间段内接收到主节点向其发送的第一心跳,可能是因为网络延迟,也可能是主从节点网络分区发生脑裂,为了进一步确定故障原因,该第一从节点在等待第二预设时间段后,继续向第一节点发送投票请求,直至主节点和第一节点的租约到期。
104.其中,该第二预设时间段的取值与第一预设时间段的取值可以相同,也可不同,本技术中不对于两个预设时间段的取值做限制,只需要大于第一心跳的周期即可。
105.其中,如果到期,即超出约定租期,第一节点与主节点之间在约定租期这段之间未进行心跳传输,该第一节点可以认为该主节点发生故障,而第一从节点是否能够作为主节点,需要进一步判断,执行步骤s405。
106.步骤s405:从投票请求中获取第一从节点的约定参数;
107.其中,该第一从节点在向第一节点发送投票请求时,该投票请求中携带该第一从节点的约定参数。
108.该第一从节点的约定参数中包含有第一从节点的相关信息。
109.步骤s406:判断所述第一从节点的约定参数是否满足预设条件,如果满足预设条件,判定满足投票条件执行步骤s407;如果不满足预设条件,判定不满足投票条件,执行步骤s408,以使得所述第一从节点退出或重启。
110.具体的,基于该第一从节点的约定参数判定是否满足预设调剂,如果满足的话,该第一从节点能够作为新的主节点,该第一节点为第一从节点投票;如果不满足的话,该第一从节点不能够作为新的主节点,该第一节点禁止为第一从节点投票。
111.具体的,在主节点和第一节点的租约到期,该第一从节点仍未接收到第一节点的投票,即确定集群的故障是主节点分区(脑裂),第一节点禁止为第一从节点投票,第一从节
点接收到的票数未能超过集群中基点半数,为了解决该脑裂,该第一节点退出或者重启。
112.图5所示的为集群中脑裂故障的投票示意图,其中(1)中两节点集群中,从节点向第一节点请求投票,第一节点反馈拒绝投票,该从节点自杀(killself)退出。其中(2)中三节点集群中,从节点1向第一节点和从节点2请求投票,从节点2同意投票,第一节点反馈拒绝投票,该从节点1的票数是2,达到大多数成为主节点。
113.步骤s407:为所述第一从节点投票;
114.步骤s408:禁止为所述第一从节点投票。
115.其中,步骤s407

408与实施例1中的步骤s103

104一致,本实施例中不做赘述。
116.综上,本实施例提供的一种信息处理方法中,在集群正常运行过程中,第一节点接收主节点发送的第二心跳,所述第二心跳携带约定参数;记录所述约定参数,所述约定参数包括租约信息;在该第一节点接收到第一从节点发生的投票请求后,基于该约定参数进行判断,以确定是否对于该第一从节点进行投票。
117.如图6所示的,为本技术提供的一种信息处理方法实施例3的流程图,该方法包括以下步骤:
118.步骤s601:接收主节点发送的第二心跳,所述第二心跳携带约定参数;
119.步骤s602:记录所述约定参数,所述约定参数包括租约信息。
120.步骤s603:接收第一从节点发送的投票请求;
121.步骤s604:基于所述约定参数,判断在接收到所述投票请求的时刻与所述主节点的租约是否到期;
122.如果未到期,不满足投票条件,执行步骤s608,以使得所述第一从节点在第二预设时间段后继续发送投票请求;
123.如果到期,执行步骤s605。
124.步骤s605:从投票请求中获取第一从节点的约定参数;
125.其中,步骤s601

605与实施例2中的步骤s401

405一致,本实施例中不做赘述。
126.步骤s606:判断所述第一从节点的版本号是否大于记录的版本号,得到第一判断结果;
127.其中,所述约定参数包括版本号、最新日志号。
128.其中,第二心跳中包括的约定参数包括租约信息、版本号以及最新日志好,该第一节点中记录上述内容。
129.具体的,第一节点中的信息如下方式维护:
130.对于版本号:初始化为

1,当收到主节点的版本号大于当前版本号,更新;对于主节点id:初始化为

1,当租约期时间过后未收到主节点的心跳,重置为

1。主节点没有异常的情况下,可以一直向第一节点续约。对于日志号:初始化为

1,收到主节点的日志号更新时,更新;对于节点存活状态:收到节点心跳时,该节点的状态更新为active(存活);投票函数func(版本号,日志号,租约时间),用于在竞选主节点时,决定是否投票。
131.与主节点的租约到期后,需要判断该第一从节点是否有资格成为新的主节点。
132.步骤s607:判断所述第一从节点的最新日志号是否大于记录的历史最新提交的日志号,得到第二判断结果;
133.具体的,对于该第一从节点的版本号和日志号进行判断。
134.具体的,若第一从节点的版本号大于记录的版本号,即判断该第一从节点的版本号是否是集群中最新的;若第一从节点的最新日志号大于记录的历史最新日志号,即判断该第一从节点的最新日志号是否是集群中最新的,因此,该第一从节点有资格成为新的主节点。否则,主节点仍然可用,该第一从节点没有资格成为新的主节点,集群故障是因为脑裂导致,所以,该第一从节点退出集群或者的重启后再次加入集群。
135.基于所述第一判断结果表征所述第一从节点的版本号大于记录的版本号且所述第二判断结果表征所述第一从节点的最新日志号大于记录的历史最新提交的日志号,判定所述第一从节点的约定参数满足预设条件,执行步骤s608;否则,所述第一从节点的约定参数不满足预设条件,执行步骤s609。
136.步骤s608:为所述第一从节点投票;
137.步骤s609:禁止为所述第一从节点投票。
138.其中,步骤s608

609与实施例2中的步骤s407

408一致,本实施例中不做赘述。
139.综上,本实施例提供的一种信息处理方法中,第一节点基于与主节点的约定租期确定是否主节点发生故障,并且结合版本号、最新日志号对于从节点是否有资格成为主节点进行判断,仅需利用主节点和从节点的少量信息即可实现判断,数据处理量小。
140.如图7所示的,为本技术提供的一种信息处理方法实施例4的流程图,该方法包括以下步骤:
141.步骤s701:接收第一从节点发送的投票请求;
142.步骤s702:判断是否满足投票条件;
143.如果满足,执行步骤s703;否则,执行步骤s704;
144.步骤s703:为所述第一从节点投票;
145.步骤s704:禁止为所述第一从节点投票;
146.其中,步骤s701

704与实施例1中的步骤s101

104一致,本实施例中不做赘述。
147.步骤s705:接收主节点基于在第三预设时间段未接收到第一节点的第三心跳将所述第一从节点移除时触发的第二心跳,所述第二心跳中携带约定参数。
148.需要说明的是,该步骤s705可以是在步骤s701之前,尚未出现第一节点在第一预设时间段未接收到主节点的第一心跳的情况下执行,也可以是在步骤s704之后,基于禁止为第一从节点投票的情况下执行。
149.具体实施中,在集群中主节点可以控制从节点的加入和移除,但是,从节点不可对于主节点进行控制。
150.其中,在从节点发生故障时,主节点能够控制从节点移除。
151.本实施例中,是针对从节点发生故障的情况。
152.其中,主节点在第三预设时间段内未接收到第一从节点的第三心跳,主节点即可判定该第一从节点发生故障,此时,主节点将该第一从节点从集群中移除,而且该主节点生成第二心跳,该第二心跳中携带约定参数,该约定参数包括发生移除第一从节点的时刻,该主节点的版本号、最新日志号以及租约信息、主节点身份标识等。
153.具体实施中,主节点在第三预设时间段内未接收到第一从节点的第三心跳,由于集群中一个节点发生故障,集群作为故障集群无法提供正常的读写服务,首先,主节点控制集群的读请求变成降级读,并暂停写请求的服务,然后,主节点将该故障从节点从集群移除
后,控制集群作为正常集群继续提供读写服务。
154.需要说明的是,该第二心跳的生成,与主节点向第一节点发送的心跳周期无关,主节点按照设置的周期向第一节点发送心跳,在集群出现变化时,主节点生成一个心跳,以将发生变化时的主节点的约定参数发送给第一节点,以使其记录。
155.其中,第三心跳与第一心跳的周期可以相同,也可以不同。
156.需要说明的是,该第三预设时间段是大于第三心跳周期的时间段。
157.例如,从节点向主节点发送第三心跳的周期是0.5秒,而该第三预设时间段可以是大于发送第三心跳的周期的时间,如2秒或者5秒等,本技术中不对于发送第三心跳的周期以及该第三预设时间段的取值做限制。
158.具体实施中,该第三预设时间段与第一预设时间段的取值相同或者不同。
159.综上,本实施例提供的一种信息处理方法中,在从节点发生故障时,主节点将从节点移除,并且生成第二心跳发送给第一节点,以使得第一节点记录集群发生变化时的主节点的约定参数。
160.如图8所示的,为本技术提供的一种信息处理方法实施例5的流程图,该方法包括以下步骤:
161.步骤s801:接收第一从节点发送的投票请求;
162.步骤s802:判断是否满足投票条件;
163.如果满足,执行步骤s803;否则,执行步骤s804;
164.步骤s803:为所述第一从节点投票;
165.步骤s804:禁止为所述第一从节点投票;
166.步骤s805:接收主节点基于在第三预设时间段未接收到第一节点的第三心跳将所述第一从节点移除时触发的第二心跳,所述第二心跳中携带约定参数;
167.其中,步骤s801

805与实施例1中的步骤s101

104一致,本实施例中不做赘述。
168.步骤s806:接收主节点控制第二从节点加入集群时触发的第二心跳,所述第二心跳中包括主节点的约定参数;
169.本实施例中,所述第二从节点与第一从节点相同或不同。
170.其中,本技术中的方案针对是两节点或者三节点集群。
171.其中,集群中加入一个从节点,该从节点可以是之前移除的从节点/主节点,也可以是新加入的从节点。
172.需要说明的是,该步骤s806中的主节点可以是移除故障主节点后集群中新的主节点,也可以是未发生故障的主节点。
173.其中,该加入的第二从节点是之前移除的从节点/主节点时,之前移除的主节点作为从节点加入,当前主节点将该第二从节点加入集群,集群可能从单节点集群变化成了两节点集群,或者是从两节点集群变化成三节点集群,由于集群发生变化,主节点触发第二心跳,以将发生变化时主节点的约定参数发送给第一节点以使其记录。
174.其中,该加入的第二从节点是新的从节点时,主节点将该第二从节点加入集群,集群可能从单节点集群变化成了两节点集群,或者是从两节点集群变化成三节点集群,由于集群发生变化,主节点触发第二心跳,以将发生变化时主节点的约定参数发送给第一节点以使其记录。
175.其中,该第二心跳中携带约定参数,该约定参数包括发生加入第二从节点的时刻,该主节点的版本号、最新日志号以及租约信息、主节点身份标识等。
176.需要说明的是,第一从节点与第二从节点是同一个从节点时,主节点需要将从第一从节点移除时的日志增量同步给该第二从节点;第二从节点与第一从节点不是同一个节点时,主节点将全部日志同步到第二从节点。
177.需要说明的是,该第二心跳的生成,与主节点向第一节点发送的心跳周期无关,主节点按照设置的周期向第一节点发送心跳,在集群出现变化时,主节点生成一个心跳,以将发生变化时的主节点的约定参数发送给第一节点,以使其记录。
178.步骤s806:接收所述第二从节点的心跳。
179.其中,第二从节点加入集群后,其也按照周期将心跳发送给第一节点,以使得第一节点记录其情况。
180.综上,本实施例提供的一种信息处理方法中,主节点控制集群加入从节点,生成第二心跳发送给第一节点,以使得第一节点记录发生变化时主节点的约定参数,并且,加入集群的第二从节点也将其心跳按照周期发送给第一节点,以使得第一节点也对于第二从节点的状态进行监测。
181.与上述本技术提供的一种信息处理方法实施例相对应的,本技术还提供了应用该信息处理方法的装置实施例。
182.如图9所示的为本技术提供的一种信息处理装置实施例的结构示意图,该装置包括以下结构:接收单元901和投票单元902;
183.其中,该接收单元901,用于接收第一从节点发送的投票请求,所述投票请求表征所述第一从节点在第一预设时间段未接收到主节点的第一心跳;
184.其中,该投票单元902,用于基于满足投票条件,为所述第一从节点投票,基于不满足投票条件,禁止为所述第一从节点投票;
185.其中,在集群包括主节点和一个从节点,为所述第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除;禁止为所述第一从节点投票,以禁止所述第一从节点作为新的主节点执行业务;
186.其中,基于所述集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除;所述第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除。
187.可选的,从节点的投票权重是1,所述第一节点投票权重小于1,
188.其中,基于所述集群包括主节点和一个从节点,所述第一节点和第一从节点为第一从节点投票,以使得集群中对于所述第一从节点的投票数超过集群中节点总数的一半;所述第一节点禁止为第一从节点投票,以使得集群中对于所述第一从节点的投票数不超过集群中节点总数的一半;
189.其中,基于所述集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,以使得集群中对于所述第一从节点的投票数超过集群中节点总数的一半;所述第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,以使得集群中对于所述第一从节点的投票数超过集群中节点总数的一半。
190.可选的,该接收单元,还用于:
191.在接收第一从节点发送的投票请求之前,接收主节点发送的第二心跳,所述第二心跳携带约定参数;
192.记录所述约定参数,所述约定参数包括租约信息。
193.可选的,投票单元用于:
194.基于所述约定参数,判断在接收到所述投票请求的时刻与所述主节点的租约是否到期;
195.如果未到期,不满足投票条件,以使得所述第一从节点在第二预设时间段后继续发送投票请求;
196.如果到期,基于投票请求中携带的第一从节点的约定参数,判断所述第一从节点的约定参数是否满足预设条件,如果满足预设条件,判定满足投票条件;如果不满足预设条件,判定不满足投票条件,以使得所述第一从节点退出或重启。
197.可选的,所述约定参数还包括版本号、最新日志号,投票单元具体用于:
198.判断所述第一从节点的版本号是否大于记录的版本号,得到第一判断结果;
199.判断所述第一从节点的最新日志号是否大于记录的历史最新提交的日志号,得到第二判断结果;
200.基于所述第一判断结果表征所述第一从节点的版本号大于记录的版本号且所述第二判断结果表征所述第一从节点的最新日志号大于记录的历史最新提交的日志号,判定所述第一从节点的约定参数满足预设条件;否则,所述第一从节点的约定参数不满足预设条件。
201.可选的,该接收单元还用于:
202.接收主节点基于在第三预设时间段未接收到第一节点的第三心跳将所述第一从节点移除时触发的第二心跳,所述第二心跳中携带约定参数。
203.可选的,该接收单元还用于:
204.接收主节点控制第二从节点加入集群时触发的第二心跳,所述第二心跳中包括主节点的约定参数,所述第二从节点与第一从节点相同或不同;
205.接收所述第二从节点的心跳。
206.其中,本实施例中提供的信息处理装置的结构功能解释参考上述方法实施例的解释,本实施例中不做赘述。
207.综上,本实施例提供的一种信息处理装置,第一从节点在第一预设时间段未接收到主节点的第一心跳向第一节点发起投票请求,基于满足投票条件,第一节点为第一从节点投票;基于不满足投票条件,第一节点禁止为第一从节点投票;其中,若集群包括主节点和一个从节点,第一节点为第一从节点投票,使得该第一从节点作为集群中新的主节点执行业务并将原主节点移除;禁止为第一从节点投票,以禁止第一从节点作为新的主节点执行业务;其中,若集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,第一从节点作为集群中新的主节点执行业务并将原主节点移除;第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,第一从节点仍然可以作为集群中新的主节点执行业务并将原主节点移除。本方案中,由于第一节点的投票权,在两节点集群中,其投票起到决定作用;而在三节点集群中,该第一节点的投票并无实质性
作用。所以,在两节点集群扩展到三节点再变回两节点的过程中,无需对第一节点移除后再加入集群的操作,减少由于执行该操作过程导致读写业务的阻塞时间。
208.与上述本技术提供的一种信息处理方法实施例相对应的,本技术还提供了应用该信息处理方法的系统实施例。
209.如图10所示的为本技术提供的一种信息处理系统实施例的结构示意图,该系统包括以下部分:主节点1001、至少一个从节点1002和第一节点1003;
210.其中,主节点1001,用于生成携带约定参数的第一心跳并发送给从节点,以使得将主节点的日志同步至从节点,生成携带约定参数的第二心跳发送给第一节点;
211.其中,至少一个从节点1002,用于接收所述第一心跳并生成携带约定参数的第三心跳发送给主节点,以回复所述第一心跳,并生成第四心跳发送给第一节点;其中,第一从节点在在第一预设时间段未接收到主节点的第一心跳生成投票请求发送给第一节点;
212.其中,主节点和从节点之间传输的地第一心跳和第三心跳用于实现两个节点之间的日志同步。
213.其中,第一节点1003,用于基于接收到所述投票请求,基于满足投票条件,为所述第一从节点投票,基于不满足投票条件,禁止为所述第一从节点投票;
214.其中,图10中(1)是表示有一个从节点的系统,(2)表示有两个从节点的系统。
215.其中,在集群包括主节点和一个从节点,为所述第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除;禁止为所述第一从节点投票,以禁止所述第一从节点作为新的主节点执行业务;
216.其中,基于所述集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除;所述第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,使得所述第一从节点作为集群中新的主节点执行业务并将原主节点移除。
217.可选的,所述主节点用于在预设时间段未接收到从节点的第三心跳,判定所述系统为故障系统,执行故障系统的响应方式;将所述故障系统中的从节点移除后,执行正常系统的响应方式,并触发第二心跳发送给第一节点。
218.其中,主节点和至少一个从节点组成集群。
219.可选的,从节点的投票权重是1,所述第一节点投票权重小于1,
220.其中,基于所述集群包括主节点和一个从节点,所述第一节点和第一从节点为第一从节点投票,以使得集群中对于所述第一从节点的投票数超过集群中节点总数的一半;所述第一节点禁止为第一从节点投票,以使得集群中对于所述第一从节点的投票数不超过集群中节点总数的一半;
221.其中,基于所述集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,以使得集群中对于所述第一从节点的投票数超过集群中节点总数的一半;所述第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,以使得集群中对于所述第一从节点的投票数超过集群中节点总数的一半。
222.可选的,第一节点在接收第一从节点发送的投票请求之前,还包括:
223.接收主节点发送的第二心跳,所述第二心跳携带约定参数;
224.记录所述约定参数,所述约定参数包括租约信息。
225.可选的,第一节点判断是否满足投票条件,包括:
226.基于所述约定参数,判断在接收到所述投票请求的时刻与所述主节点的租约是否到期;
227.如果未到期,不满足投票条件,以使得所述第一从节点在第二预设时间段后继续发送投票请求;
228.如果到期,基于投票请求中携带的第一从节点的约定参数,判断所述第一从节点的约定参数是否满足预设条件,如果满足预设条件,判定满足投票条件;如果不满足预设条件,判定不满足投票条件,以使得所述第一从节点退出或重启。
229.可选的,所述约定参数还包括版本号、最新日志号,第一节点判断所述第一从节点的约定参数是否满足预设条件,包括:
230.判断所述第一从节点的版本号是否大于记录的版本号,得到第一判断结果;
231.判断所述第一从节点的最新日志号是否大于记录的历史最新提交的日志号,得到第二判断结果;
232.基于所述第一判断结果表征所述第一从节点的版本号大于记录的版本号且所述第二判断结果表征所述第一从节点的最新日志号大于记录的历史最新提交的日志号,判定所述第一从节点的约定参数满足预设条件;否则,所述第一从节点的约定参数不满足预设条件。
233.可选的,主节点控制第二从节点加入集群时触发第二心跳,所述第二心跳中包括主节点的约定参数,所述第二从节点与第一从节点相同或不同;
234.第一节点还接收所述主节点发送的第二心跳,并且接收所述第二从节点的心跳。
235.具体的,该系统中出现主节点故障、从节点故障或者是主节点分区(脑裂)时,在两节点集群中,第一节点的投票起到决定性作用,而在三节点集群中,第一节点的投票无实质性作用。
236.综上,本实施例提供的一种信息处理系统,第一从节点在第一预设时间段未接收到主节点的第一心跳向第一节点发起投票请求,基于满足投票条件,第一节点为第一从节点投票;基于不满足投票条件,第一节点禁止为第一从节点投票;其中,若集群包括主节点和一个从节点,第一节点为第一从节点投票,使得该第一从节点作为集群中新的主节点执行业务并将原主节点移除;禁止为第一从节点投票,以禁止第一从节点作为新的主节点执行业务;其中,若集群包括主节点和两个从节点,第二从节点、第一从节点和第一节点为第一从节点投票,第一从节点作为集群中新的主节点执行业务并将原主节点移除;第一节点禁止为第一从节点投票,第二从节点和第一从节点为第一从节点投票,第一从节点仍然可以作为集群中新的主节点执行业务并将原主节点移除。本方案中,由于第一节点的投票权,在两节点集群中,其投票起到决定作用;而在三节点集群中,该第一节点的投票并无实质性作用。所以,在两节点集群扩展到三节点再变回两节点的过程中,无需对第一节点移除后再加入集群的操作,减少由于执行该操作过程导致读写业务的阻塞时间。
237.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
238.对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献