分布式集群中主节点确定方法、装置、设备及存储介质制造方法及图纸

技术编号:24893564 阅读:47 留言:0更新日期:2020-07-14 18:19
本申请公开了一种分布式集群中主节点确定方法,该方法包括:每个节点生成自身的初始网络拓扑视图;向自身的初始网络拓扑视图中的每个节点发表第一相关信息;每个节点生成自身的总成网络拓扑视图;针对每个节点,如果该节点为准主节点,则向自身的总成网络拓扑视图中的每个节点发表第二相关信息;每个节点确定基准网络拓扑视图;每个节点基于自身的总成网络拓扑视图和基准网络拓扑视图,确定自身所在的最终网络拓扑视图及该最终网络拓扑视图中的主节点。应用本申请实施例所提供的技术方案,可以使得集群能够持续运行,提升分布式集群的稳定性。本申请还公开了一种分布式集群中主节点确定装置、设备及存储介质,具有相应技术效果。

【技术实现步骤摘要】
分布式集群中主节点确定方法、装置、设备及存储介质
本申请涉及计算机应用
,特别是涉及一种分布式集群中主节点确定方法、装置、设备及存储介质。
技术介绍
随着计算机技术的快速发展,分布式集群的应用越来越广泛。分布式集群通常使用MultiPaxos算法实现集群节点间的状态数据一致性。为了维持MultiPaxos算法的运行,需要在集群所有节点中选择唯一的主节点,由主节点作为状态变更的唯一提案者向集群发起状态变更请求,请求得到集群中的仲裁节点集认可后即成为集群共识。通常主节点会被选为集群中节点标识号即ID最小的节点。但是如果该节点宕机,就需要进行重选。在现有技术中,开源分布式集群系统Zookeeper提供了以上问题的一个解决方案。该方案实现了自己的上层通信协议。在主节点宕机时,集群中其他节点会通过该协议发起投票以选举新的主节点。但是,这个通信协议构建在TCP/IP协议的基础上,无法适用于拥有多协议通信链路的分布式集群中。所以,如何进行分布式集群中主节点确定,是目前本领域技术人员急需解决的技术问题。
技术实现思路
本申请的目的是提供一种分布式集群中主节点确定方法、装置、设备及存储介质,以适应更多场景的分布式集群的主节点的选择。为解决上述技术问题,本申请提供如下技术方案:一种分布式集群中主节点确定方法,包括:每个节点根据自身的可见节点,生成自身的初始网络拓扑视图;每个节点向自身的初始网络拓扑视图中的每个节点发表第一相关信息,所述第一相关信息包括自身的初始网络拓扑视图的信息和在自身的初始网络拓扑视图中选择的主节点的信息;每个节点根据接收到的第一相关信息,生成自身的总成网络拓扑视图;针对每个节点,如果该节点确定在自身的总成网络拓扑视图中自身为准主节点,则向自身的总成网络拓扑视图中的每个节点发表第二相关信息,所述第二相关信息包括自身的总成网络拓扑视图的信息;每个节点在获得的总成网络拓扑视图中确定基准网络拓扑视图;每个节点基于自身的总成网络拓扑视图和基准网络拓扑视图,确定自身所在的最终网络拓扑视图及该最终网络拓扑视图中的主节点。在本申请的一种具体实施方式中,所述每个节点基于自身的总成网络拓扑视图和基准网络拓扑视图,确定自身所在的最终网络拓扑视图及该最终网络拓扑视图中的主节点,包括:针对每个节点,该节点在自身的总成网络拓扑视图中重新选择主节点;如果重新选择的主节点与基准网络拓扑视图的准主节点相同,则将基准网络拓扑视图与自身的总成网络拓扑视图进行比较;根据比较结果,通知该准主节点剔除在基准网络拓扑视图中但不在自身的总成网络拓扑视图中的节点,以断开被剔除节点与基准网络拓扑视图中其他节点的连接;将剔除节点后的基准网络拓扑视图确定为自身所在的最终网络拓扑视图,将该准主节点确定为该最终网络拓扑视图中的主节点。在本申请的一种具体实施方式中,所述每个节点在获得的总成网络拓扑视图中确定基准网络拓扑视图,包括:针对每个节点,如果该节点获得的总成网络拓扑视图只有一个,则将该总成网络拓扑视图确定为基准网络拓扑视图。在本申请的一种具体实施方式中,所述第二相关信息还包括准主节点被选择为主节点的次数信息,所述每个节点在获得的总成网络拓扑视图中确定基准网络拓扑视图,包括:针对每个节点,如果该节点获得的总成网络拓扑视图有多个,则确定获得的每个总成网络拓扑视图的准主节点被选择为主节点的次数;如果被选择为主节点的次数最多的准主节点只有一个,则将被选择为主节点的次数最多的准主节点的总成网络拓扑视图确定为基准网络拓扑视图。在本申请的一种具体实施方式中,还包括:如果被选择为主节点的次数最多的准主节点有多个,则在多个被选择为主节点的次数最多的准主节点中,将曾作为仲裁节点的次数最多的准主节点的总成网络拓扑视图确定为基准网络拓扑视图。在本申请的一种具体实施方式中,还包括:如果被选择为主节点的次数最多的准主节点有多个,则在多个被选择为主节点的次数最多的准主节点中,将节点标识号最小的准主节点的总成网络拓扑视图确定为基准网络拓扑视图。在本申请的一种具体实施方式中,在所述每个节点向自身的初始网络拓扑视图中的每个节点发表第一相关信息之前,还包括:基于以下原则确定是否执行发表操作:如果因为网络或节点变动,导致新生成的初始网络拓扑视图是连接状态协议中保存的初始网络拓扑视图的子集,则可以发表新的初始网络拓扑视图;如果新的初始网络拓扑视图与连接状态协议中保存的初始网络拓扑视图相同,但节点间通信出现了临时或不可恢复的丢失,则可以发表新的初始网络拓扑视图;如果新的初始网络拓扑视图与连接状态协议中保存的初始网络拓扑视图相同,且初始网络拓扑视图中没有出现断连或重连,则不执行发表操作;如果新的初始网络拓扑视图是连接状态协议中保存的初始网络拓扑视图的超集,则等待一个租约周期后执行发表操作。一种分布式集群中主节点确定装置,包括:初始视图生成模块,用于每个节点根据自身的可见节点,生成自身的初始网络拓扑视图;第一信息发表模块,用于每个节点向自身的初始网络拓扑视图中的每个节点发表第一相关信息,所述第一相关信息包括自身的初始网络拓扑视图的信息和在自身的初始网络拓扑视图中选择的主节点的信息;总成视图生成模块,用于每个节点根据接收到的第一相关信息,生成自身的总成网络拓扑视图;第二信息发表模块,用于针对每个节点,如果该节点确定在自身的总成网络拓扑视图中自身为准主节点,则向自身的总成网络拓扑视图中的每个节点发表第二相关信息,所述第二相关信息包括自身的总成网络拓扑视图的信息;基准视图确定模块,用于每个节点在获得的总成网络拓扑视图中确定基准网络拓扑视图;主节点确定模块,用于每个节点基于自身的总成网络拓扑视图和基准网络拓扑视图,确定自身所在的最终网络拓扑视图及该最终网络拓扑视图中的主节点。一种分布式集群中主节点确定设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述任一项所述分布式集群中主节点确定方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述分布式集群中主节点确定方法的步骤。应用本申请实施例所提供的技术方案,每个节点在生成初始网络拓扑视图后,向其他节点发表第一相关信息,每个节点根据接收到的第一相关信息,生成自身的总成网络拓扑视图,准主节点发表第二相关信息,每个节点确定出基准网络拓扑视图后,基于自身的总成网络拓扑视图和基准网络拓扑视图,确定最终的网络拓扑视图和主节点。不需要受限于分布式集群所使用的通信链路的协议,适用于更多场景下的分布式集群的主节点的确定,在分布式集群的网络环境变化或节点失败时能够将集群迁移到稳定的网络子环境中,并在子环境的所有成员节点上选出相同的主节点,从而使得集群能够持续运行,而且每个网络子环境本文档来自技高网...

【技术保护点】
1.一种分布式集群中主节点确定方法,其特征在于,包括:/n每个节点根据自身的可见节点,生成自身的初始网络拓扑视图;/n每个节点向自身的初始网络拓扑视图中的每个节点发表第一相关信息,所述第一相关信息包括自身的初始网络拓扑视图的信息和在自身的初始网络拓扑视图中选择的主节点的信息;/n每个节点根据接收到的第一相关信息,生成自身的总成网络拓扑视图;/n针对每个节点,如果该节点确定在自身的总成网络拓扑视图中自身为准主节点,则向自身的总成网络拓扑视图中的每个节点发表第二相关信息,所述第二相关信息包括自身的总成网络拓扑视图的信息;/n每个节点在获得的总成网络拓扑视图中确定基准网络拓扑视图;/n每个节点基于自身的总成网络拓扑视图和基准网络拓扑视图,确定自身所在的最终网络拓扑视图及该最终网络拓扑视图中的主节点。/n

【技术特征摘要】
1.一种分布式集群中主节点确定方法,其特征在于,包括:
每个节点根据自身的可见节点,生成自身的初始网络拓扑视图;
每个节点向自身的初始网络拓扑视图中的每个节点发表第一相关信息,所述第一相关信息包括自身的初始网络拓扑视图的信息和在自身的初始网络拓扑视图中选择的主节点的信息;
每个节点根据接收到的第一相关信息,生成自身的总成网络拓扑视图;
针对每个节点,如果该节点确定在自身的总成网络拓扑视图中自身为准主节点,则向自身的总成网络拓扑视图中的每个节点发表第二相关信息,所述第二相关信息包括自身的总成网络拓扑视图的信息;
每个节点在获得的总成网络拓扑视图中确定基准网络拓扑视图;
每个节点基于自身的总成网络拓扑视图和基准网络拓扑视图,确定自身所在的最终网络拓扑视图及该最终网络拓扑视图中的主节点。


2.根据权利要求1所述的方法,其特征在于,所述每个节点基于自身的总成网络拓扑视图和基准网络拓扑视图,确定自身所在的最终网络拓扑视图及该最终网络拓扑视图中的主节点,包括:
针对每个节点,该节点在自身的总成网络拓扑视图中重新选择主节点;
如果重新选择的主节点与基准网络拓扑视图的准主节点相同,则将基准网络拓扑视图与自身的总成网络拓扑视图进行比较;
根据比较结果,通知该准主节点剔除在基准网络拓扑视图中但不在自身的总成网络拓扑视图中的节点,以断开被剔除节点与基准网络拓扑视图中其他节点的连接;
将剔除节点后的基准网络拓扑视图确定为自身所在的最终网络拓扑视图,将该准主节点确定为该最终网络拓扑视图中的主节点。


3.根据权利要求1所述的方法,其特征在于,所述每个节点在获得的总成网络拓扑视图中确定基准网络拓扑视图,包括:
针对每个节点,如果该节点获得的总成网络拓扑视图只有一个,则将该总成网络拓扑视图确定为基准网络拓扑视图。


4.根据权利要求1所述的方法,其特征在于,所述第二相关信息还包括准主节点被选择为主节点的次数信息,所述每个节点在获得的总成网络拓扑视图中确定基准网络拓扑视图,包括:
针对每个节点,如果该节点获得的总成网络拓扑视图有多个,则确定获得的每个总成网络拓扑视图的准主节点被选择为主节点的次数;
如果被选择为主节点的次数最多的准主节点只有一个,则将被选择为主节点的次数最多的准主节点的总成网络拓扑视图确定为基准网络拓扑视图。


5.根据权利要求4所述的方法,其特征在于,还包括:
如果被选择为主节点的次数最多的准主节点有多个,则在多个被选择为主节点的次数最多的准主节点中,将曾作为仲裁节点的次数最多的准主节点的总成网络拓扑视图确...

【专利技术属性】
技术研发人员:赵鹏
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1