分布式系统的节点确定方法技术方案

技术编号:39648000 阅读:29 留言:0更新日期:2023-12-09 11:15
本申请实施例提供了一种分布式系统的节点确定方法

【技术实现步骤摘要】
分布式系统的节点确定方法、任务处理方法及相关装置


[0001]本申请涉及分布式
,具体而言,本申请涉及一种分布式系统的节点确定方法

任务处理方法及相关装置


技术介绍

[0002]在高可用的分布式技术中,会存在互为备份的多个执行节点,多个执行节点在处于连接状态时,由其中的一个执行节点处理任务,另一个执行节点作为备份执行节点,彼此通过心跳链路达成主备协商

但是,当多个执行节点出现心跳链路故障时,多个执行节点中只可以有一个为存活状态,即只可以由其中的一个执行节点处理任务,若多个执行节点都为存活状态,则同时处理任务,而且二者无法进行数据的同步,就表示出现了脑裂的状况,这种情况会导致任务数据的混乱

[0003]因此,如何减少脑裂出现的情况已成为了重要研究方向之一


技术实现思路

[0004]本申请实施例提供了一种分布式系统的节点确定方法

任务处理方法及相关装置,用于解决分布式技术中容易出现脑裂的技术问题,从而达到减少脑裂出现的情况的技术效果

[0005]一方面,本申请实施例提供了一种分布式系统的节点确定方法,分布式系统包括多个执行节点,方法应用于多个执行节点中的任一第一节点,方法包括:若满足投票触发条件,则进行第
N
轮投票处理,以得到第
N
轮第一投票结果,第一投票结果用于指示多个执行节点中处理任务的第一候选节点,
N
为不小于1的整数;基于第
N
轮第一投票结果确定多个执行节点中处理任务的目标节点,其中,目标节点包括第一候选节点中的至少一个;其中,每一轮投票处理,包括:获取各第二节点的心跳信息,并基于各第二节点的心跳信息确定第二节点中的存活节点,第二节点为多个执行节点中除第一节点外的节点,存活节点为最近一次心跳的时间与当前时间之间的时间间隔小于时间间隔阈值的节点;基于第二节点中的存活节点确定结果进行投票,得到第一投票结果

[0006]另一方面,本申请实施例还提供了一种分布式系统的任务处理方法,分布式系统包括多个执行节点,方法应用于多个执行节点中的任一第一节点,方法包括:确定多个执行节点中用于处理任务的目标节点,其中,目标节点是基于本申请任一实施例的方法确定的;若目标节点包括第一节点,则确定待处理任务中的第一数量个目标任务,并对第一数量个目标任务进行处理

[0007]另一方面,本申请实施例还提供了一种分布式系统的节点确定装置,分布式系统包括多个执行节点,装置应用于多个执行节点中的任一第一节点,装置包括:
决策模块,用于若满足投票触发条件,则进行第
N
轮投票处理,以得到第
N
轮第一投票结果,第一投票结果用于指示多个执行节点中处理任务的第一候选节点,
N
为不小于1的整数;决策模块还用于基于第
N
轮第一投票结果确定多个执行节点中处理任务的目标节点,其中,目标节点包括第一候选节点中的至少一个;其中,决策模块在进行每一轮投票处理时,用于:获取各第二节点的心跳信息,并基于各第二节点的心跳信息确定第二节点中的存活节点,第二节点为多个执行节点中除第一节点外的节点,存活节点为最近一次心跳的时间与当前时间之间的时间间隔小于时间间隔阈值的节点;基于第二节点中的存活节点确定结果进行投票,得到第一投票结果

[0008]可选的,投票触发条件包括以下的至少一项:到达投票触发时间;第一节点的最近一次心跳的时间与当前时间之间的时间间隔小于时间间隔阈值;多个执行节点中的存活节点与第
N
‑1轮投票所确定的目标节点不一致,
N
为不小于2的整数;检测到第二节点中的存活节点发生变化

[0009]可选的,第一节点处于工作状态或暂停状态,处于工作状态的第一节点允许处理任务,处于暂停状态的第一节点禁止处理任务;决策模块还用于:若确定出的目标节点包括第一节点,则将第一节点的状态设置为工作状态;若第一节点的最近一次心跳的时间与当前时间之间的时间间隔大于或等于时间间隔阈值,则将第一节点的状态设置为暂停状态;若满足投票触发条件且在确定出目标节点之前,将第一节点的状态设置为暂停状态

[0010]可选的,决策模块在基于第
N
轮第一投票结果确定多个执行节点中处理任务的目标节点时,可以用于:查询至少一个第二节点分别对应的第
N
轮第二投票结果,第二投票结果用于指示多个执行节点中处理任务的第二候选节点;若第
N
轮第二投票结果查询失败,则将第
N
轮第一投票结果所指示的第一候选节点确定为目标节点;若第
N
轮第二投票结果查询成功,则基于第
N
轮第一投票结果和第
N
轮第二投票结果确定多个执行节点中处理任务的目标节点

[0011]可选的,基于第
N
轮第一投票结果和第
N
轮第二投票结果确定多个执行节点中处理任务的目标节点时,可以用于:若基于第
N
轮第一投票结果和第
N
轮第二投票结果确定满足投票结束条件,则确定用于处理任务的目标节点集合,并将目标节点集合中的任一节点确定为目标节点,目标节点集合为第
N
轮第一投票结果所指示的第一候选节点和第
N
轮第二投票结果所指示的第二候选节点之间的交集或并集;其中,投票结束条件包括以下的至少一项:第
N
轮第一投票结果与各第二节点对应的第
N
轮第二投票结果一致;
查询到的第
N
轮第二投票结果所对应的至少一个第二节点与第二节点中的存活节点一致;方法还包括:若基于第
N
轮第一投票结果和第
N
轮第二投票结果确定不满足投票结束条件,则进行第
N+1
轮投票处理

[0012]可选的,多个执行节点中的任一节点与投票管理数据库连接,投票管理数据库用于记录各执行节点每一轮投票处理得到的投票结果;决策模块在查询至少一个第二节点分别对应的第
N
轮第二投票结果时,可以用于:从投票管理数据库中查询至少一个第二节点分别对应的第
N
轮第二投票结果

[0013]可选的,投票管理数据库还用于记录各执行节点上报的心跳信息;决策模块在获取各第二节点的心跳信息时,可以用于:从投票管理数据库中获取各第二节点的心跳信息

[0014]可选的,决策模块在基于第二节点中的存活节点确定结果进行投票,得到第一投票结果时,可以用于以下的至少一项:若存活节点确定结果为第二节点中的存活节点确定成功,则第一投票结果所指示的第一候选节点包括第一节点和第二节点中的存活节点;若存活节点确定结果为第二节本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种分布式系统的节点确定方法,其特征在于,所述分布式系统包括多个执行节点,所述方法应用于所述多个执行节点中的任一第一节点,所述方法包括:若满足投票触发条件,则进行第
N
轮投票处理,以得到第
N
轮第一投票结果,第一投票结果用于指示所述多个执行节点中处理任务的第一候选节点,
N
为不小于1的整数;基于所述第
N
轮第一投票结果确定所述多个执行节点中处理任务的目标节点,其中,所述目标节点包括所述第一候选节点中的至少一个;其中,每一轮投票处理,包括:获取各第二节点的心跳信息,并基于各第二节点的心跳信息确定第二节点中的存活节点,所述第二节点为所述多个执行节点中除所述第一节点外的节点,所述存活节点为最近一次心跳的时间与当前时间之间的时间间隔小于时间间隔阈值的节点;基于所述第二节点中的存活节点确定结果进行投票,得到第一投票结果
。2.
根据权利要求1所述的方法,其特征在于,所述投票触发条件包括以下的至少一项:到达投票触发时间;所述第一节点的最近一次心跳的时间与当前时间之间的时间间隔小于时间间隔阈值;所述多个执行节点中的存活节点与第
N
‑1轮投票所确定的目标节点不一致,
N
为不小于2的整数;检测到所述第二节点中的存活节点发生变化
。3.
根据权利要求1所述的方法,其特征在于,所述第一节点处于工作状态或暂停状态,处于工作状态的所述第一节点允许处理任务,处于暂停状态的所述第一节点禁止处理任务;所述方法还包括以下的至少一项:若确定出的目标节点包括所述第一节点,则将所述第一节点的状态设置为工作状态;若所述第一节点的最近一次心跳的时间与当前时间之间的时间间隔大于或等于时间间隔阈值,则将所述第一节点的状态设置为暂停状态;若满足投票触发条件且在确定出目标节点之前,将所述第一节点的状态设置为暂停状态
。4.
根据权利要求1所述的方法,其特征在于,所述基于所述第
N
轮第一投票结果确定所述多个执行节点中处理任务的目标节点,包括:查询至少一个第二节点分别对应的第
N
轮第二投票结果,第二投票结果用于指示所述多个执行节点中处理任务的第二候选节点;若所述第
N
轮第二投票结果查询失败,则将所述第
N
轮第一投票结果所指示的第一候选节点确定为目标节点;若所述第
N
轮第二投票结果查询成功,则基于所述第
N
轮第一投票结果和所述第
N
轮第二投票结果确定所述多个执行节点中处理任务的目标节点
。5.
根据权利要求4所述的方法,其特征在于,所述基于所述第
N
轮第一投票结果和所述第
N
轮第二投票结果确定所述多个执行节点中处理任务的目标节点,包括:若基于所述第
N
轮第一投票结果和所述第
N
轮第二投票结果确定满足投票结束条件,则确定用于处理任务的目标节点集合,并将所述目标节点集合中的任一节点确定为目标节点,所述目标节点集合为所述第
N
轮第一投票结果所指示的第一候选节点和所述第
N
轮第二投票结果所指示的第二候选节点之间的交集或并集;
其中,所述投票结束条件包括以下的至少一项:所述第
N
轮第一投票结果与各第二节点对应的第
N
轮第二投票结果一致;查询到的第
N
轮第二投票结果所对应的所述至少一个第二节点与所述第二节点中的存活节点一致;所述方法还包括:若基于所述第
N
轮第一投票结果和所述第
N
轮第二投票结果确定不满足所述投票结束条件,则进行第
N+1
轮投票处理
。6.
根据权利要求4所述的方法,其特征在于,所述多个执行节点中的任一节点与投票管理数据库连接,所述投票管理数据库用于记录各执行节点每一轮投票处理得到的投票结果;所述查询至少一个第二节点分别对应的第
N
轮第二投票结果,包括:从所述投票管理数据库中查询至少一个第二节点分别对应的第
...

【专利技术属性】
技术研发人员:杨一迪黄辉
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1