分布式系统中主节点的选举方法、装置和电子设备制造方法及图纸

技术编号:36913295 阅读:9 留言:0更新日期:2023-03-18 09:31
本发明专利技术实施例提供了一种分布式系统中主节点的选举方法、装置、电子设备及可读存储介质,包括:在当前分布式节点为非主节点时,查询在选主数据库中是否存在主节点对应的主节点对象;若在选主数据库中不存在主节点对应的主节点对象或者在选主数据库中存在主节点对应的主节点对象但主节点处于异常状态时,则查询在选主数据库中的指定节点对象;遍历指定节点对象中分布式节点对应的属性信息,并查询分布式节点对应的属性信息所对应的节点对象的状态信息;根据状态信息从节点对象中确定作为主节点的目标节点对象;在当前分布式节点的属性信息与目标节点对象的属性信息一致时,将当前分布式节点作为主节点。本发明专利技术实施例分布式节点计算的主节点一致。点计算的主节点一致。点计算的主节点一致。

【技术实现步骤摘要】
分布式系统中主节点的选举方法、装置和电子设备


[0001]本专利技术实施例涉及云计算
,特别是涉及一种分布式系统中主节点的选举方法、一种分布式系统中主节点的选举装置、一种电子设备以及一种计算机可读存储介质。

技术介绍

[0002]在云计算的应用领域中,有很多分布式的应用场景,在这种应用场景下各个节点间是对等的、没有中心节点的角色,因此这些节点通常称为对等节点或者分布式节点,但是在部分实际客户应用场景中又需要在这些分布式节点间动态、临时找出一个主节点来做些控制和协同的事务,如对失效节点进行数据恢复,不能同时出现多个或所有的节点同时进行恢复数据的操作,否则会因此出现多个节点同时对失效节点的进行数据恢复而导致数据异常。并且,需要在这个选举出来的主节点失效后系统中所有剩下的节点都能够选举计算出一个一致的新主节点负责统一处理事务来满足节点在故障或特殊场景下对数据一致性的需求。这种需求在某些分布式文件系统在故障恢复的时候对恢复节点的选择;也可以应用在智能网卡弹性裸金属系统的动态网关均衡场景等。
[0003]然而,虽然目前已经有不少实现分布式系统的主节点选举方案,但是利用这些主节点选举方案,容易出现分布式系统中同时选举出多个主节点的问题。

技术实现思路

[0004]本专利技术实施例是提供一种分布式系统中主节点的选举方法、装置、电子设备以及计算机可读存储介质,以解决分布式系统中同时选举出多个主节点的问题。
[0005]本专利技术实施例公开了一种分布式系统中主节点的选举方法,所述分布式系统包括若干分布式节点和选主数据库,所述方法包括:在当前分布式节点为非主节点时,查询在所述选主数据库中是否存在主节点对应的主节点对象;若在所述选主数据库中不存在主节点对应的主节点对象或者在所述选主数据库中存在主节点对应的主节点对象但主节点处于异常状态时,则查询在所述选主数据库中的指定节点对象;其中,所述指定节点对象包括主动申请成为主节点的所述分布式节点对应的属性信息,所述分布式节点对应的属性信息分别创建有对应的节点对象;遍历所述指定节点对象中所述分布式节点对应的属性信息,并查询所述分布式节点对应的属性信息所对应的节点对象的状态信息;根据所述状态信息从所述节点对象中确定作为主节点的目标节点对象;在所述当前分布式节点的属性信息与所述目标节点对象的属性信息一致时,将所述当前分布式节点作为主节点。
[0006]可选地,所述属性信息至少包括所述分布式节点对应的唯一标识序列号;所述状态信息至少包括所述节点对象对应的创建时间。
[0007]可选地,所述根据所述状态信息从所述节点对象中确定作为主节点的目标节点对
象,包括:将所述创建时间最早的所述节点对象作为主节点的目标节点对象。
[0008]可选地,在所述查询在所述选主数据库中是否存在主节点对应的主节点对象之后,所述方法还包括:若在所述选主数据库中存在主节点对应的主节点对象,则获取所述主节点对象的状态属性的属性值和所述主节点对象的保活属性值;当所述主节点对象的状态属性的属性值为运行状态、且在所述主节点对象的状态属性的属性值为运行状态时连续查询到所述主节点对象的保活属性值超过预设次数均一致时,确定所述主节点处于异常状态。
[0009]可选地,所述方法还包括:当所述主节点处于异常状态或者所述主节点对象的状态属性的属性值为完成状态时,删除所述主节点对象以及所述指定节点对象中所述节点对象对应的属性信息。
[0010]可选地,在所述当前分布式节点的属性信息与所述目标节点对象的属性信息一致时,将所述当前分布式节点作为主节点之后,所述方法还包括:当所述选主数据库存在主节点对象时,若所述主节点对象对应的属性信息与所述当前分布式节点的属性信息不一致,则生成错误日志记录。
[0011]当所述选主数据库不存在主节点对象时,创建主节点对象,并在所述主节点对象中设置所述当前分布式节点对应的属性信息。
[0012]可选地,在所述当前分布式节点的属性信息与所述目标节点对象的属性信息一致时,将所述当前分布式节点作为主节点之后,所述方法还包括:将所述主节点对象的状态属性的属性值设置为运行状态,并运行主节点流程事务;按照预设定时时间获取所述当前分布式节点的当前时间戳信息,并将所述主节点对象的保活属性值中设置为所述当前分布式节点的当前时间戳信息。
[0013]可选地,在所述开始运行主节点流程事务之后,所述方法还包括:当所述主节点流程事务完成时,将所述主节点对象的状态属性的属性值设置为完成状态;当所述主节点流程事务运未完成时,返回运行主节点流程事务的步骤。
[0014]可选地,所述指定节点对象和所述节点对象为RADOS对象。
[0015]本专利技术实施例还公开了一种分布式系统中主节点的选举装置,所述分布式系统包括若干分布式节点和选主数据库,所述装置包括:主节点对象查询模块,用于在当前分布式节点为非主节点时,查询在所述选主数据库中是否存在主节点对应的主节点对象;指定节点对象查询模块,用于若在所述选主数据库中不存在主节点对应的主节点对象或者在所述选主数据库中存在主节点对应的主节点对象但主节点处于异常状态时,则查询在所述选主数据库中的指定节点对象;其中,所述指定节点对象包括主动申请成为主节点的所述分布式节点对应的属性信息,所述分布式节点对应的属性信息分别创建有对应的节点对象;属性信息遍历模块,用于遍历所述指定节点对象中所述分布式节点对应的属性信
息,并查询所述分布式节点对应的属性信息所对应的节点对象的状态信息;目标节点对象确定模块,用于根据所述状态信息从所述节点对象中确定作为主节点的目标节点对象;主节点选举模块,用于在所述当前分布式节点的属性信息与所述目标节点对象的属性信息一致时,将所述当前分布式节点作为主节点。
[0016]可选地,所述属性信息至少包括所述分布式节点对应的唯一标识序列号;所述状态信息至少包括所述节点对象对应的创建时间。
[0017]可选地,所述目标节点对象确定模块,用于:将所述创建时间最早的所述节点对象作为主节点的目标节点对象。
[0018]可选地,所述装置还包括异常状态确定模块,用于:若在所述选主数据库中存在主节点对应的主节点对象,则获取所述主节点对象的状态属性的属性值和所述主节点对象的保活属性值;当所述主节点对象的状态属性的属性值为运行状态、且在所述主节点对象的状态属性的属性值为运行状态时连续查询到所述主节点对象的保活属性值超过预设次数均一致时,确定所述主节点处于异常状态。
[0019]可选地,所述装置还包括异常状态确定模块,用于:若在所述选主数据库中存在主节点对应的主节点对象,则获取所述主节点对象的状态属性的属性值和所述主节点对象的保活属性值;当所述主节点对象的状态属性的属性值为运行状态、且在所述主节点对象的状态属性的属性值为运行状态时连续查询到所述主节点对象的保活属性值超过预设次数均一致时,确定所述主节点处于异常状态。
[0020]可选地,所述装置还包括属性信息删除模块,用于:当所述主节点处于异常状态或者所述主节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式系统中主节点的选举方法,其特征在于,所述分布式系统包括若干分布式节点和选主数据库,所述方法包括:在当前分布式节点为非主节点时,查询在所述选主数据库中是否存在主节点对应的主节点对象;若在所述选主数据库中不存在主节点对应的主节点对象或者在所述选主数据库中存在主节点对应的主节点对象但主节点处于异常状态时,则查询在所述选主数据库中的指定节点对象;其中,所述指定节点对象包括主动申请成为主节点的所述分布式节点对应的属性信息,所述分布式节点对应的属性信息分别创建有对应的节点对象;遍历所述指定节点对象中所述分布式节点对应的属性信息,并查询所述分布式节点对应的属性信息所对应的节点对象的状态信息;根据所述状态信息从所述节点对象中确定作为主节点的目标节点对象;在所述当前分布式节点的属性信息与所述目标节点对象的属性信息一致时,将所述当前分布式节点作为主节点。2.根据权利要求1所述的方法,其特征在于,所述属性信息至少包括所述分布式节点对应的唯一标识序列号;所述状态信息至少包括所述节点对象对应的创建时间。3.根据权利要求2所述的方法,其特征在于,所述根据所述状态信息从所述节点对象中确定作为主节点的目标节点对象,包括:将所述创建时间最早的所述节点对象作为主节点的目标节点对象。4.根据权利要求1所述的方法,其特征在于,在所述查询在所述选主数据库中是否存在主节点对应的主节点对象之后,所述方法还包括:若在所述选主数据库中存在主节点对应的主节点对象,则获取所述主节点对象的状态属性的属性值和所述主节点对象的保活属性值;当所述主节点对象的状态属性的属性值为运行状态、且在所述主节点对象的状态属性的属性值为运行状态时连续查询到所述主节点对象的保活属性值超过预设次数均一致时,确定所述主节点处于异常状态。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当所述主节点处于异常状态或者所述主节点对象的状态属性的属性值为完成状态时,删除所述主节点对象以及所述指定节点对象中所述节点对象对应的属性信息。6.根据权利要求1所述的方法,其特征在于,在所述当前分布式节点的属性信息与所述目标节点对象的属性信息一致时,将所述当前分布式节点作为主节点之后,所述方法还包括:当所述选主数据库存在主节点对象时,若所述主节点对象对应的属性信息与所述当前分布式节点的属性信息不一致,则生成错误日志记录;当所述选主数据库不存在主节点对象时,创建主节点对象,并在所述主节点对象中设置所述当前分布式节点对应的属性信息。7.根据权利要求6所述的方法,其特征在于,在所述当前分布式节点的属性信息与所述目标节点对象的属性信息一致时,将所述当前分布式节点作为主节点之后,所述方法还包括:将所述主节点对象的状态属性的属性值设置为运行状态,并运行主节点流程事务;
按照预设定时时间获取所述当前分布式节点的当前时间戳信息,并将所述主节...

【专利技术属性】
技术研发人员:吴重云谭龙李凯张端王雷孙政张猛
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1