一种分布式集群选主方法及服务器技术

技术编号:37130891 阅读:11 留言:0更新日期:2023-04-06 21:29
本申请涉及计算机技术领域,具体涉及一种分布式集群选主方法及服务器。该方法包括:第一主控节点监控第一主控节点和每个业务节点之间的链路;当第一主控节点和所有业务节点中的至少P个业务节点之间的链路发生异常时,第一主控节点触发选主流程,选主流程用于从多个控制节点中重新选择一个控制节点作为第二主控节点,第二主控节点用于代替第一主控节点,控制业务节点执行业务,其中P为大于等于1的整数。该方法可以提高业务节点执行业务的稳定性。性。性。

【技术实现步骤摘要】
一种分布式集群选主方法及服务器


[0001]本申请涉及计算机
,特别涉及一种分布式集群选主方法及服务器。

技术介绍

[0002]随着计算机技术以及通信技术的发展,很多业务系统采用分布式集群(distributed cluster)架构,以实现更好的负载均衡等,从而能够更好地为用户提供相关服务。在分布式集群架构中,不同功能分布在集群中不同节点(node)上,这些节点共同实现业务。通常,分布式集群包括由多个控制节点组成的控制子集群、由多个业务节点组成的业务子集群。其中,业务子集群中的业务节点用于执行业务。控制子集群中的控制节点用于控制业务节点,例如,将业务请求分配给哪些业务节点,以便这些业务节点处理该业务请求。
[0003]控制子集群中一个控制节点作为主控节点(master),其他控制节点作为从节点(slave)。其中,主控节点用于控制业务节点。当主控节点的状态异常时,需要从控制子集群中重新选择主控节点。目前,主控节点的状态由从节点监控。因此,可能出现从节点对主控节点的监控结果显示主控节点的状态正常,而主控节点和业务节点之间的链路异常的情况,在这种情况下,主控节点不能有效控制业务节点,并且控制子集群也不能重新选举主控节点,从而导致业务子集群难以提供服务。

技术实现思路

[0004]本申请实施例提供了一种分布式集群选主方法及服务器,可以提高业务节点执行业务的稳定性。
[0005]第一方面,提供了一种分布式集群选主方法,所述分布式集群包括多个控制节点和多个业务节点,其中,所述多个控制节点中的一个控制节点作为第一主控节点,用于控制所述业务节点执行业务;所述方法包括:所述第一主控节点监控所述第一主控节点和每个所述业务节点之间的链路;当所述第一主控节点和所有所述业务节点中的至少P个业务节点之间的链路发生异常时,所述第一主控节点触发选主流程,所述选主流程用于从所述多个控制节点中重新选择一个控制节点作为第二主控节点,所述第二主控节点用于代替所述第一主控节点,控制所述业务节点执行业务,其中P为大于等于1的整数。
[0006]该方法通过监控主控节点和业务节点之间的链路,来判断是否触发选主流程,从而可以在主控节点和业务节点之间的链路异常时,可以重新选择或选举主控节点,从而保障了业务节点可以得到主控节点的有效控制,提高了业务执行的稳定性。
[0007]在一种可能的实施方式中,所述第一主控节点通过所述第一主控节点和所述业务节点之间的心跳报文,感知所述第一主控节点和所述业务节点之间的链路的状态;所述第一主控节点监控所述第一主控节点和每个所述业务节点之间的链路包括:所述第一主控节点统计在预设时长的时间段内所述第一主控节点和所述业务节点之间的丢失心跳报文的数量;当所述第一主控节点和所述业务节点之间的丢失心跳报文的数量不小于第一阈值时,确认所述第一主控节点和所述业务节点之间的链路发生异常。
[0008]在一种可能的实施方式中,在所述多个控制节点通过投票选举主控节点的情况下,所述方法还包括:所述第一主控节点不投票给所述第一主控节点;或者,所述分布式集群还包括控制器,所述方法还包括:延迟所述第一主控节点尝试在所述控制器路径下创建临时节点的开始时刻;或者,所述分布式集群还包括哨兵,所述方法还包括:所述哨兵从其他控制节点中选择第二主控节点,所述其他控制节点为所述多个控制节点中除所述第一主控节点之外的节点。
[0009]该实施方式可以降低原主控节点再次称为主控节点的可能性,从而提高了新的主控节点和业务节点之间具有较好的链路的可能性。
[0010]在一种可能的实施方式中,所述第一主控节点触发选主流程包括:所述第一主控节点指示所述多个控制节点中的每个控制节点进入所述选主流程。
[0011]在一种可能的实施方式中,所述多个控制节点包括至少一个第一控制节点和至少两个第二控制节点,所述第一主控节点属于所述第二控制节点,所述第一主控节点触发选主流程包括:所述第一主控节点通知所述第一控制节点;所述第一控制节点指示所述至少两个第二控制节点中每个控制节点进入所述选主流程,或者所述第一控制节点指定所述至少两个第二控制节点中的一个控制节点作为第二主控节点。
[0012]在一种可能的实施方式中,所述方法还包括:所述多个控制节点中每个控制节点,监控所述第一主控节点的状态,并在监控到所述第一主控节点的状态发生异常时,进入所述选主流程。
[0013]该实施方式可以与现有的选主流程触发机制兼容,从而保障了可在多种情况下触发选主流程。
[0014]第二方面,提供了一种第一服务器,所述第一服务器与多个第二服务器通信连接,所述第一服务器包括处理器以及与所述处理器耦合的接收端口;其中,所述接收端口用于接收每个所述第二服务器的心跳报文;所述处理器用于基于所述第二服务器的心跳报文,监控所述第一服务器和所述第二服务器之间的链路;以及,用于在所述第一服务器和所有所述第二服务器中至少P个第二服务器之间的链路发生异常时,触发选主流程,所述选主流程用于从多个控制服务器中重新选择一个服务器作为主控服务器,所述主控服务器用于代替所述第一服务器,控制所述第二服务器执行业务,其中P为大于等于1的整数。
[0015]在一种可能的实施方式中,所述处理器还用于:统计在预设时长的时间段内所述第一服务器和所述第二服务器之间的丢失心跳报文的数量;当所述第一服务器和所述第二服务器之间的丢失心跳报文的数量不小于第一阈值时,确认所述第一服务器和所述第二服务器之间的链路发生异常。
[0016]在一种可能的实施方式中,所述处理器还用于:指示所述多个控制服务器中每个服务器进入所述选主流程。
[0017]在一种可能的实施方式中,所述第一服务器还与管理服务器通信连接,所述处理器还用于通知所述管理服务器,以使所述管理服务器指示每个所述控服务器进行选主流程或者指定所述多个控制服务器中的一个服务器作为主控服务器。
[0018]第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面提供的方法。
[0019]第四方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有
指令,所述指令在由计算机执行时,使得所述计算机实施第一方面提供的方法。
附图说明
[0020]图1为本申请实施例提供的一种分布式集群的结构示意图;
[0021]图2为本申请实施例提供的一种分布式集群的结构示意图;
[0022]图3为本申请实施例提供的一种分布式集群的结构示意图;
[0023]图4为本申请实施例提供的一种分布式集群的结构示意图;
[0024]图5为本申请实施例提供的一种分布式集群选主方法的流程图;
[0025]图6为本申请实施例提供的一种分布式集群选主方法的流程图;
[0026]图7A为本申请实施例提供的一种心跳报文统计结果的示意图;
[0027]图7B为本申请实施例提供的一种心跳报文统计结果的示意图;...

【技术保护点】

【技术特征摘要】
1.一种分布式集群选主方法,其特征在于,所述分布式集群包括多个控制节点和多个业务节点,其中,所述多个控制节点中的一个控制节点作为第一主控节点,用于控制所述业务节点执行业务;所述方法包括:所述第一主控节点监控所述第一主控节点和每个所述业务节点之间的链路;当所述第一主控节点和所有所述业务节点中的至少P个业务节点之间的链路发生异常时,所述第一主控节点触发选主流程,所述选主流程用于从所述多个控制节点中重新选择一个控制节点作为第二主控节点,所述第二主控节点用于代替所述第一主控节点,控制所述业务节点执行业务,其中P为大于等于1的整数。2.根据权利要求1所述的方法,其特征在于,所述第一主控节点通过所述第一主控节点和所述业务节点之间的心跳报文,感知所述第一主控节点和所述业务节点之间的链路的状态;所述第一主控节点监控所述第一主控节点和每个所述业务节点之间的链路包括:所述第一主控节点统计在预设时长的时间段内所述第一主控节点和所述业务节点之间的丢失心跳报文的数量;当所述第一主控节点和所述业务节点之间的丢失心跳报文的数量不小于第一阈值时,确认所述第一主控节点和所述业务节点之间的链路发生异常。3.根据权利要求1或2所述的方法,其特征在于,在所述多个控制节点通过投票选举主控节点的情况下,所述方法还包括:所述第一主控节点不投票给所述第一主控节点;或者,所述分布式集群还包括控制器,所述方法还包括:延迟所述第一主控节点尝试在所述控制器路径下创建临时节点的开始时刻;或者,所述分布式集群还包括哨兵,所述方法还包括:所述哨兵从其他控制节中选择第二主控节点,所述其他控制节点为所述多个控制节点中除所述第一主控节点之外的节点。4.根据权利要求1

3中任一项所述的方法,其特征在于,所述第一主控节点触发选主流程包括:所述第一主控节点指示所述多个控制节点中的每个控制节点进入所述选主流程。5.根据权利要求1

3中任一项所述的方法,其特征在于,所述多个控制节点包括至少一个第一控制...

【专利技术属性】
技术研发人员:刘国霞梁永贵黄焰
申请(专利权)人:超聚变数字技术有限公司
类型:发明
国别省市:

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

1