一种主节点确定方法、装置、电子设备及存储介质与流程

未命名 08-15 阅读:102 评论:0


1.本发明实施例涉及计算机网络技术领域,尤其涉及一种主节点确定方法、装置、电子设备及存储介质。


背景技术:

2.为了实现高可用集群,常用的做法是使用主备模式。在主备模式下,备用节点随时检测主节点的健康状况,当主节点发生故障时,服务自动切换到备用节点以保证服务正常运行。
3.但是,目前当主备通信链路出现问题时,容易出现脑裂现象,在脑裂现象出现的情况下,节点由于彼此失去了联系,会认为对方出现了故障,从而产生争抢共享资源,严重时会导致共享存储损坏的问题,亟待解决。


技术实现要素:

4.本发明实施例提供了一种主节点确定方法、装置、电子设备及存储介质,以避免出现脑裂现象。
5.根据本发明的一方面,提供了一种主节点确定方法,应用于任命服务,方法可以包括:
6.获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息;
7.根据分布式锁信息判断是否存在主节点分布式锁;
8.在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点。
9.根据本发明的另一方面,提供了一种主节点确定装置,配置于任命服务,主节点确定装置,可以包括:
10.集群状态信息获取模块,用于获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息;
11.主节点分布式锁判断模块,用于根据分布式锁信息判断是否存在主节点分布式锁;
12.目标主节点确定模块,用于在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点。
13.根据本发明的另一方面,提供了一种电子设备,可以包括:
14.至少一个处理器;以及
15.与至少一个处理器通信连接的存储器;其中,
16.存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器执行时实现本发明任意实施例所提供的主节点确定方法。
17.根据本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机指
令,该计算机指令用于使处理器执行时实现本发明任意实施例所提供的主节点确定方法。
18.本发明实施例的技术方案,获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息;根据分布式锁信息判断是否存在主节点分布式锁;在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点。本发明实施例的技术方案,可以通过任命服务检测主节点是否正常,各个候选节点之间无需相互通讯,相应的也就无需备节点检测主节点是否发生故障,从而可以避免出现脑裂现象,以避免在脑裂现象出现的情况下,节点由于彼此失去了联系,会认为对方出现了故障,从而产生争抢共享资源,严重时会导致共享存储损坏的问题。
19.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或是重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
20.图1是本发明实施例一中提供的一种主节点确定方法的流程图;
21.图2是本发明实施例二中提供的一种主节点确定方法的流程图;
22.图3是本发明实施例三中提供的一种主节点确定方法的流程图;
23.图4是本发明实施例四中提供的一种主节点确定方法中一种可选示例中的高可用集群的结构图;
24.图5是本发明实施例四中提供的一种主节点确定方法中一种可选示例的结构图;
25.图6是本发明实施例四中提供的一种主节点确定方法中另一种可选示例的部分流程的流程图;
26.图7是本发明实施例四中提供的一种主节点确定方法中另一种可选示例的另一部分流程的流程图;
27.图8是本发明实施例四中提供的主节点确定装置的结构框图;
28.图9是实现本发明实施例的主节点确定方法的电子设备的结构示意图。
具体实施方式
29.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
30.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。“目标”、“原始”等的情况类似,在此不再赘述。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
31.实施例一
32.图1是本发明实施例一中所提供的一种主节点确定方法的流程图。本实施例可适用于对主节点确定的情况。该方法应用于任命服务,可以由本发明实施例提供的主节点确定装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备上,该电子设备可以是各种用户终端或服务器。
33.参见图1,本发明实施例的方法具体包括如下步骤:
34.s110、获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息。
35.需要注意的是,任命服务为可以任命目标主节点的服务,任命服务的数量可以是一个也可以是多个。
36.其中,目标集群可以理解为需求确定目标主节点的集群,例如可以是高可用集群;目标集群可以包括至少一个候选节点。集群状态信息可以理解为与目标集群的状态相关的信息;集群状态信息可以包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息。分布式锁信息可以理解为与主节点分布式锁相关的信息;分布式锁信息例如可以包括是否存在主节点分布式锁的信息、主节点分布式锁对应的目标主节点的名称、主节点分布式锁对应的目标主节点的主节点注册时间,和/或,主节点分布式锁对应的目标主节点的主节点网络协议地址,等等。候选节点可以理解为目标集群中的可以作为目标主节点的节点;候选节点例如可以是存储服务。注册信息可以理解为是至少一个候选节点在启动时注册的信息;注册信息例如可以包括至少一个候选节点的注册时间、至少一个候选节点的网络协议地址、至少一个候选节点的服务地址和/或至少一个候选节点的监听端口,等等。目标主节点可以理解为是目标集群的主节点。
37.在本发明实施例中,各候选节点在启动时,可以把自身的信息注册到分布式键值存储,该键值存储例如可以是云原生架构中的组件etcd;任命服务可以获取目标集群的集群状态信息,例如任命服务可以周期性的获取目标集群的集群状态信息,该集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息。
38.s120、根据分布式锁信息判断是否存在主节点分布式锁。
39.其中,主节点分布式锁可以理解为是用于验证目标主节点是否存在的分布式锁。
40.需要注意的是,分布式键值存储,特别是etcd,具有租约机制(ttl,time to live),也即lease机制,租约机制具体为etcd可以为存储的键值(key-value)对设置租约,当租约到期,key-value失效删除;同时也支持续约,可以在租约到期之前续约,以避免key-value对过期失效;此外,还支持解约,一旦解约,与该租约绑定的key-value失效删除。在本发明实施例中,可以利用上述租约机制,在候选节点被任命为目标主节点后,目标主节点可以在分布式键值存储中生成分布式锁作为主节点分布式锁,该主节点分布式锁可以在分布式键值存储中以key-value对的形式存在,且包括目标主节点的名称、主节点注册时间和/或主节点网络协议地址等等信息,并为该主节点分布式锁设置租约机制;目标主节点可以在其对应的主节点分布式锁过期之前不断的进行续期,以证明自己是健康的,具体的,可以是目标主节点可以每过预设时间间隔向分布式键值存储中的主节点分布式锁进行续约操作,若目标主节点在超过预设时长后未对主节点分布式锁进行续约,则可以认为目标主节点与目标集群连接断开,在此情况下,主节点分布式锁由于未被正常续期而失效删除。
41.在本发明实施例中,可以根据分布式锁信息判断是否存在主节点分布式锁,若根
据分布式锁信息确定不存在主节点分布式锁,则可以认为目标主节点与目标集群连接断开或目标集群不存在目标主节点;若根据分布式锁信息确定存在主节点分布式锁,则可以认为目标集群存在目标主节点。
42.s130、在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点。
43.在本发明实施例中,在不存在主节点分布式锁的情况下,则可以认为目标主节点与目标集群连接断开或目标集群不存在目标主节点,可以进行确定目标主节点的操作;基于注册信息,从至少一个候选节点中确定目标主节点;可以将至少一个候选节点中除目标主节点之外的节点看作为备用节点。
44.在本发明实施例中,还可以是基于集群状态信息,从至少一个候选节点中确定目标主节点,例如,考虑到只有处于启动状态的候选节点才可以作为目标主节点,处于关闭状态的候选节点不能作为目标主节点,因此集群状态信息还可以包括至少一个候选节点的启动情况信息,根据注册信息以及启动情况信息,从至少一个候选节点中确定目标主节点,该启动情况信息可以理解为至少一个候选节点是否处于启动状态的相关信息。
45.本发明实施例的技术方案,获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息;根据分布式锁信息判断是否存在主节点分布式锁;在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点。本发明实施例的技术方案,可以通过任命服务检测主节点是否正常,各个候选节点之间无需相互通讯,相应的也就无需备节点检测主节点是否发生故障,从而可以避免出现脑裂现象,以避免在脑裂现象出现的情况下,节点由于彼此失去了联系,会认为对方出现了故障,从而产生争抢共享资源,严重时会导致共享存储损坏的问题。
46.实施例二
47.图2是本发明实施例二中提供的另一种主节点确定方法的流程图。本实施例以上述各技术方案为基础进行优化。本实施例中,可选的,注册信息包括至少一个候选节点的注册时间;基于注册信息,从至少一个候选节点中确定目标主节点,包括:基于注册时间,从至少一个候选节点中确定目标主节点。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
48.参见图2,本实施例的方法具体可以包括如下步骤:
49.s210、获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息,注册信息包括至少一个候选节点的注册时间。
50.其中,注册时间可以理解为是候选节点注册的时间,例如可以是候选节点把自身的信息注册到分布式键值存储时的时间。
51.s220、根据分布式锁信息判断是否存在主节点分布式锁。
52.s230、在不存在主节点分布式锁的情况下,基于注册时间,从至少一个候选节点中确定目标主节点。
53.在本发明实施例中,可以是在不存在主节点分布式锁的情况下,基于注册时间,从至少一个候选节点中确定目标主节点,例如可以是将至少一个候选节点中,注册时间最早的候选节点作为目标主节点;再例如还可以是将至少一个候选节点中,注册时间最晚的候
选节点作为目标主节点;等等。在本发明实施例中,对基于注册时间,从至少一个候选节点中确定目标主节点的方式不做具体的限定。
54.本发明实施例的技术方案,注册信息包括至少一个候选节点的注册时间;基于注册时间,从至少一个候选节点中确定目标主节点。在本发明实施例中,通过基于注册时间确定出的目标主节点,可以使确定出的目标主节点更为适用于当前情况。
55.一种可选的技术方案,基于注册时间,从至少一个候选节点中确定目标主节点,包括:基于注册时间,从至少一个候选节点中确定注册时间最早的最早节点;将最早节点作为目标主节点。
56.其中,最早节点可以理解为是至少一个候选节点中注册时间最早的候选节点。
57.在本发明实施例中,基于注册时间,从至少一个候选节点中确定注册时间最早的最早节点;将最早节点作为目标主节点。本发明实施例的方案,将最早节点作为目标主节点,可以满足先到先得的目标主节点选择条件,以进一步使确定出的目标主节点更为适用于当前情况。
58.另一种可选的技术方案,注册信息还包括至少一个候选节点的网络协议地址;基于注册时间,从至少一个候选节点中确定目标主节点,还包括:在目标主节点的数量为至少两个的情况下,将至少两个目标主节点分别作为备选节点;根据网络协议地址,从至少两个备选节点中确定出一个备选节点,并将确定出的备选节点作为至少两个目标主节点。
59.其中,网络协议地址可以理解为是候选节点的网络协议地址(internet protocol address,ip地址)。
60.需要注意的是,基于注册时间,从至少一个候选节点中确定出的目标主节点的数量可能会存在两个及两个以上的情况,例如在从至少一个候选节点中确定注册时间最早的最早节点,将最早节点作为目标主节点的情况下,若有两个候选节点的注册时间相同且注册时间最早,则存在确定出两个目标主节点的情况。因此,在本发明实施例中,可以在目标主节点的数量为至少两个的情况下,将至少两个目标主节点分别作为备选节点,该备选节点即为备选作为最终应用的目标主节点的节点;根据网络协议地址,从至少两个备选节点中确定出一个备选节点,并将确定出的备选节点作为至少两个目标主节点,即为将确定出的一个备选节点作为最终应用的一个目标主节点。在本发明实施例中,对根据网络协议地址,从至少两个备选节点中确定出一个备选节点的方式不做具体的限定。上述技术方案,可以进一步使确定出的目标主节点更为适用于当前情况,且避免确定出多个目标主节点争抢共享资源的情况。
61.在上述方案的基础上,另一种可选的技术方案,根据网络协议地址,从至少两个备选节点中确定出一个备选节点,并将确定出的备选节点作为至少两个目标主节点,包括:根据网络协议地址,从至少两个备选节点中确定出网络协议地址最大的最大节点;将最大节点作为至少两个目标主节点。
62.其中,最大节点可以理解为是至少两个备选节点中网络协议地址最大的备选节点。
63.在本发明实施例中,可以根据网络协议地址,从至少两个备选节点中确定出网络协议地址最大的最大节点;将最大节点作为至少两个目标主节点。本发明实施例的技术方案,可以进一步使确定出的目标主节点更为适用于当前情况,且进一步避免确定出多个目
标主节点争抢共享资源的情况。
64.实施例三
65.图3是本发明实施例三中提供的另一种主节点确定方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,在基于注册信息,从至少一个候选节点中确定目标主节点之后,还包括:根据目标主节点生成任命消息,并将任命消息发送给目标主节点,以使目标主节点基于任命消息生成主节点分布式锁,并完成升主业务;其中,升主业务是将目标主节点升级为主节点的业务。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
66.参见图3,本实施例的方法具体可以包括如下步骤:
67.s310、获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息。
68.s320、根据分布式锁信息判断是否存在主节点分布式锁。
69.s330、在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点。
70.s340、根据目标主节点生成任命消息,并将任命消息发送给目标主节点,以使目标主节点基于任命消息生成主节点分布式锁,并完成升主业务;其中,升主业务是将目标主节点升级为主节点的业务。
71.其中,任命消息可以理解为是指示任命目标主节点的消息;任命消息例如可以包括目标主节点的名称、主节点注册时间和/或主节点网络协议地址等等信息。
72.在本发明实施例中,任命服务可以根据目标主节点生成任命消息,并将任命消息发送给任命消息对应的目标主节点;目标主节点在接收到任命消息后,可以基于任命消息生成指示生成主节点分布式锁的生成锁指令,并将生成锁指令发送给分布式键值存储,分布式键值存储可以根据生成锁指令生成目标主节点对应的主节点分布式锁;目标主节点完成升主业务,该升主业务是将目标主节点升级为主节点的业务。
73.需要注意的是,在本发明实施例中,可以目标主节点基于任命消息生成主节点分布式锁,并完成升主业务之后,根据目标主节点和/或生成的主节点分布式锁更新集群状态信息,并将更新后的集群状态信息存储在分布式键值存储中。
74.本发明实施例的技术方案,在基于注册信息,从至少一个候选节点中确定目标主节点之后,根据目标主节点生成任命消息,并将任命消息发送给目标主节点,以使目标主节点基于任命消息生成主节点分布式锁,并完成升主业务;其中,升主业务是将目标主节点升级为主节点的业务。本发明实施例的技术方案,可以实现在确定出目标主节点之后,生成主节点分布式锁,并完成升主业务,以使目标主节点能够成功使用,且便于后续任命服务检测目标集群是否存在目标主节点。
75.一种可选的技术方案,根据目标主节点生成任命消息,并将任命消息发送给目标主节点,以使目标主节点基于任命消息生成主节点分布式锁,并完成升主业务,包括:根据目标主节点生成任命消息,并将任命消息发送给目标主节点,以使目标主节点在收到的任命消息的数量大于预设数量的情况下,基于收到的任命消息,生成主节点分布式锁,并完成升主业务。
76.需要注意的是,任命服务的数量可能为多个,在任命服务的数量为至少两个的情
况下,至少两个任命服务中的每个任命服务都可以根据任命服务确定出的目标主节点生成任命消息,并将任命消息发送给任命服务确定出的目标主节点;至少两个任命服务确定出的目标主节点的数量可能为至少一个,针对至少一个目标主节点中的每个目标主节点,目标主节点可能会收到至少一个任命消息,可以使收到的任命消息的数量大于预设数量的目标主节点,基于收到的任命消息,生成主节点分布式锁,并完成升主业务。
77.在本发明实施例中,预设数量可以理解为是预设固定的任命消息的数量;预设数量还可以是根据任命服务的数量决定的,例如预设数量可以是任命服务的数量的一半。
78.在本发明实施例中,根据目标主节点生成任命消息,并将任命消息发送给目标主节点,以使目标主节点在收到的任命消息的数量大于预设数量的情况下,基于收到的任命消息,生成主节点分布式锁,并完成升主业务。本发明实施例中,可以通过目标主节点在收到的任命消息的数量大于预设数量的情况下,基于收到的任命消息,生成主节点分布式锁,并完成升主业务,以使确定出的最终完成升主业务的目标主节点的准确度更高,更适用于当前情况。
79.为了更好的理解上述本发明实施例的技术方案,在此提供一种可选示例。示例性的,假设高可用集群可以包含至少两个候选节点,且高可用集群可以包括心跳服务(heartbeat)或交换机制软件(keepalived),例如,参见图4,高可用集群可以是包括两个存储服务的时序库集群,一个存储服务可以作为主节点,另一个存储服务可以作为备用节点,时序库集群还可以包括keepalived对外提供虚拟网际互连协议(internet protocol,ip),外部应用可以通过虚拟ip使用集群提供的服务,时序库集群还可以包括共享存储来存储数据库数据,keepalived与存储服务相互之间可以通过串行电缆或以太网电缆采用心跳线相互通讯,在keepalived正常工作时,主节点会采用多播的方式不断地向备用节点发送心跳消息,用以告诉备用节点自己还活着,备用节点可以随时检测主节点的健康状况,以当主节点发生故障时,可以自动切换到备用节点以保证服务正常运行。在本发明实施例中,例如,参见图5,可以增加etcd集群以及三个任命服务替代假设的高可用集群中的keepalived;考虑到分布式文件系统可以把数据分散到不同的节点上存储,并通过冗余复杂保证文件的可用性,大大减少了数据丢失的风险,且分布式文件系统可以部署在低廉的硬件上,提供高吞吐量来访问数据,因此在本发明实施例中,可以增加分布式文件系统替代假设的高可用集群中的共享存储,该分布式文件系统可以是可扩展的分布式文件系统(google file system,gfs)、hadoop分布式文件系统(hadoop distributed file system,hdfs)或ceph分布式文件系统,等等;各任命服务中的每个任命服务,可以定期从etcd集群中获取目标集群的集群状态信息;根据分布式锁信息判断是否存在主节点分布式锁,在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点;任命服务可以根据目标主节点生成任命消息,并将任命消息发送给目标主节点;目标主节点在收到的任命消息的数量大于预设数量的情况下,基于收到的任命消息,在etcd集群中生成主节点分布式锁,并完成升主业务;目标主节点在完成升主业务之后,才可以访问分布式文件系统;并将至少一个候选节点中除目标主节点外的节点看作为备用节点。本发明实施例的上述方案,相较于假设的高可用集群,可以避免出现多个主节点的情况,节点之间不需要两两交互,以减少节点之间的链接数量,部署维护简单,减少了部署维护成本,且支持异构性,支持多样化的异构软硬件设备。
80.为了更好的理解上述本发明实施例的技术方案,在此提供另一种可选示例。示例性的,参见图6,作为候选节点的存储服务可以在启动后,从配置文件中读取etcd地址等信息;并基于etcd地址等信息,将自身的注册信息注册到etcd集群中;任命服务可以周期性的获取目标集群的集群状态信息;根据集群状态信息中的分布式锁信息判断是否存在主节点分布式锁;在不存在主节点分布式锁的情况下,触发选主流程,基于集群状态信息中的注册信息,从至少一个存储服务中选择一个存储服务作为目标主节点;任命服务向作为目标主节点的存储服务发出任命信息;作为目标主节点的存储服务基于任命消息在etcd集群中生成主节点分布式锁,并完成升主业务,同时更新集群状态信息。
81.参见图7,作为目标主节点的存储服务在主节点分布式锁过期之前不断的进行续期操作,以证明自己是健康的;当作为目标主节点的存储服务与etcd集群连接断开时,主节点分布式锁会由于续期失败导致被释放,该存储服务由于失去其对应的主节点分布式锁被切换成备用节点;任命服务可以周期性的获取目标集群的集群状态信息;根据集群状态信息中的分布式锁信息判断是否存在主节点分布式锁;在不存在主节点分布式锁的情况下,触发选主流程,基于集群状态信息中的注册信息,从至少一个存储服务中选择一个存储服务作为目标主节点;任命服务向作为目标主节点的存储服务发出任命信息用于选主,即选则主节点;作为目标主节点的存储服务基于任命消息在etcd集群中获取主节点分布式锁,并完成升主业务,同时更新集群状态信息。
82.实施例四
83.图8是本发明实施例四所提供的主节点确定装置的结构框图,该装置用于执行上述任意实施例所提供的主节点确定方法,该装置配置于任命服务。该装置与上述各实施例的主节点确定方法属于同一个发明构思,在主节点确定装置的实施例中未详尽描述的细节内容,可以参考上述主节点确定方法的实施例。参见图8,该装置具体可包括:集群状态信息获取模块410、主节点分布式锁判断模块420和目标主节点确定模块430。
84.其中,集群状态信息获取模块410,用于获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息;
85.主节点分布式锁判断模块420,用于根据分布式锁信息判断是否存在主节点分布式锁;
86.目标主节点确定模块430,用于在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点。
87.可选的,注册信息包括至少一个候选节点的注册时间;
88.目标主节点确定模块430,可以包括:
89.目标主节点确定单元,用于基于注册时间,从至少一个候选节点中确定目标主节点。
90.在上述方案的基础上,可选的,目标主节点确定单元,可以包括:
91.最早节点确定子单元,用于基于注册时间,从至少一个候选节点中确定注册时间最早的最早节点;
92.第一目标主节点作为子单元,用于将最早节点作为目标主节点。
93.在上述方案的基础上,可选的,注册信息还包括至少一个候选节点的网络协议地址;
94.目标主节点确定单元,还可以包括:
95.备选节点作为子单元,用于在目标主节点的数量为至少两个的情况下,将至少两个目标主节点分别作为备选节点;
96.第二目标主节点作为子单元,用于根据网络协议地址,从至少两个备选节点中确定出一个备选节点,并将确定出的备选节点作为至少两个目标主节点。
97.在上述方案的基础上,可选的,第二目标主节点作为子单元,具体用于:
98.根据网络协议地址,从至少两个备选节点中确定出网络协议地址最大的最大节点;
99.将最大节点作为至少两个目标主节点。
100.可选的,主节点确定装置,还可以包括:
101.任命消息发送模块,用于在基于注册信息,从至少一个候选节点中确定目标主节点之后,根据目标主节点生成任命消息,并将任命消息发送给目标主节点,以使目标主节点基于任命消息生成主节点分布式锁,并完成升主业务;
102.其中,升主业务是将目标主节点升级为主节点的业务。
103.在上述方案的基础上,可选的,任命消息发送模块,可以包括:
104.任命消息发送单元,用于根据目标主节点生成任命消息,并将任命消息发送给目标主节点,以使目标主节点在收到的任命消息的数量大于预设数量的情况下,基于收到的任命消息,生成主节点分布式锁,并完成升主业务。
105.本发明实施例四所提供的主节点确定装置,通过集群状态信息获取模块获取目标集群的集群状态信息,其中,集群状态信息包括分布式锁信息以及目标集群中的至少一个候选节点的注册信息;通过主节点分布式锁判断模块根据分布式锁信息判断是否存在主节点分布式锁;通过目标主节点确定模块在不存在主节点分布式锁的情况下,基于注册信息,从至少一个候选节点中确定目标主节点。上述装置,可以通过任命服务检测主节点是否正常,各个候选节点之间无需相互通讯,相应的也就无需备节点检测主节点是否发生故障,从而可以避免出现脑裂现象,以避免在脑裂现象出现的情况下,节点由于彼此失去了联系,会认为对方出现了故障,从而产生争抢共享资源,严重时会导致共享存储损坏的问题。
106.本发明实施例所提供的主节点确定装置可执行本发明任意实施例所提供的主节点确定方法,具备执行方法相应的功能模块和有益效果。
107.值得注意的是,上述主节点确定装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
108.实施例五
109.图9示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
110.如图9所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连
接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
111.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
112.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如主节点确定方法。
113.在一些实施例中,主节点确定方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的主节点确定方法的一个或多个步骤。备选地,在其他实施例中,处理器11可通过其他任何适当的方式(例如,借助于固件)而被配置为执行主节点确定方法。
114.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、以及至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、以及该至少一个输出装置。
115.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或是其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行并且部分地在远程机器上执行或完全在远程机器或服务器上执行。
116.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只
读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
117.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
118.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
119.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
120.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
121.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术特征:
1.一种主节点确定方法,其特征在于,应用于任命服务,所述方法包括:获取目标集群的集群状态信息,其中,所述集群状态信息包括分布式锁信息以及所述目标集群中的至少一个候选节点的注册信息;根据所述分布式锁信息判断是否存在主节点分布式锁;在不存在所述主节点分布式锁的情况下,基于所述注册信息,从所述至少一个候选节点中确定所述目标主节点。2.根据权利要求1所述的方法,其特征在于,所述注册信息包括所述至少一个候选节点的注册时间;所述基于所述注册信息,从所述至少一个候选节点中确定目标主节点,包括:基于所述注册时间,从所述至少一个候选节点中确定目标主节点。3.根据权利要求2所述的方法,其特征在于,所述基于所述注册时间,从所述至少一个候选节点中确定目标主节点,包括:基于所述注册时间,从所述至少一个候选节点中确定注册时间最早的最早节点;将所述最早节点作为目标主节点。4.根据权利要求2所述的方法,其特征在于,所述注册信息还包括所述至少一个候选节点的网络协议地址;所述基于所述注册时间,从所述至少一个候选节点中确定目标主节点,还包括:在所述目标主节点的数量为至少两个的情况下,将所述至少两个目标主节点分别作为备选节点;根据所述网络协议地址,从所述至少两个备选节点中确定出一个备选节点,并将确定出的备选节点作为所述至少两个目标主节点。5.根据权利要求4所述的方法,其特征在于,所述根据所述网络协议地址,从所述至少两个备选节点中确定出一个备选节点,并将确定出的备选节点作为所述至少两个目标主节点,包括:根据所述网络协议地址,从所述至少两个备选节点中确定出网络协议地址最大的最大节点;将所述最大节点作为所述至少两个目标主节点。6.根据权利要求1所述的方法,其特征在于,在所述基于所述注册信息,从所述至少一个候选节点中确定目标主节点之后,还包括:根据所述目标主节点生成任命消息,并将所述任命消息发送给所述目标主节点,以使所述目标主节点基于所述任命消息生成所述主节点分布式锁,并完成升主业务;其中,所述升主业务是将所述目标主节点升级为主节点的业务。7.根据权利要求6所述的方法,其特征在于,根据所述目标主节点生成任命消息,并将所述任命消息发送给所述目标主节点,以使所述目标主节点基于所述任命消息生成所述主节点分布式锁,并完成升主业务,包括:根据所述目标主节点生成任命消息,并将所述任命消息发送给所述目标主节点,以使所述目标主节点在收到的任命消息的数量大于预设数量的情况下,基于所述收到的任命消息,生成所述主节点分布式锁,并完成升主业务。8.一种主节点确定装置,其特征在于,配置于任命服务,所述装置包括:
集群状态信息获取模块,用于获取目标集群的集群状态信息,其中,所述集群状态信息包括分布式锁信息以及所述目标集群中的至少一个候选节点的注册信息;主节点分布式锁判断模块,用于根据所述分布式锁信息判断是否存在主节点分布式锁;目标主节点确定模块,用于在不存在所述主节点分布式锁的情况下,基于所述注册信息,从所述至少一个候选节点中确定所述目标主节点。9.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-7中任一项所述的主节点确定方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现如权利要求1-7中任一所述的主节点确定方法。

技术总结
本发明实施例公开了一种主节点确定方法、装置、电子设备及存储介质。该方法包括:获取目标集群的集群状态信息,其中,所述集群状态信息包括分布式锁信息以及所述目标集群中的至少一个候选节点的注册信息;根据所述分布式锁信息判断是否存在主节点分布式锁;在不存在所述主节点分布式锁的情况下,基于所述注册信息,从所述至少一个候选节点中确定所述目标主节点。本发明实施例的技术方案,可以避免出现脑裂现象。脑裂现象。脑裂现象。


技术研发人员:曾锡池 陈国栋 倪泽明
受保护的技术使用者:南方电网数字平台科技(广东)有限公司
技术研发日:2023.05.15
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐