防止分布式数据库脑裂的方法、装置及电子设备制造方法及图纸

技术编号:37781715 阅读:10 留言:0更新日期:2023-06-09 09:12
本发明专利技术涉及一种防止分布式数据库脑裂的方法、装置及电子设备,应用于管理节点,所述方法包括:向业务组件节点发送第一心跳信息;若在第一预设时间段内接收到来自于与业务组件节点对应的代理模块的第二心跳信息,基于所述第二心跳信息确定所述业务组件节点是否出现异常;若所述业务组件节点出现异常,向所述与业务组件节点对应的代理模块发送切换指令,所述切换指令用于指示所述代理模块控制所述业务组件节点切换为备机或者下线。本申请实施例能够在业务组件节点出现异常时,管理节点可以将隔离区的业务组件节点自动下线或设置成备机的保护状态,避免了在网络异常或分区时出现双主和脑裂的情况,提高了数据的安全性和数据一致性。一致性。一致性。

【技术实现步骤摘要】
防止分布式数据库脑裂的方法、装置及电子设备


[0001]本申请涉及数据库
,尤其涉及一种防止分布式数据库脑裂的方法、装置及电子设备。

技术介绍

[0002]分布式系统中往往存在主备节点通过网络进行同步的部署。主备节点切换由管理节点进行控制,管理节点通过心跳来探测相关业务组件的状态,当管理节点感知不到业务组件中主节点的状态或者发现主节点出现故障状态的话就会根据切换策略进行主备切换。
[0003]然而,管理节点与业务组件之间的心跳也是通过网络进行传输的,在发生网络异常时管理节点与业务组件无法正常传输心跳,导致管理节点发生误判,拉起两个主节点,进而触发脑裂,导致双写,发生多个副本之间的数据不一致的情况。

技术实现思路

[0004]为了解决现有分布式系统中通过管理节点对业务组件选主,由于网络抖动或者网络分区导致业务组件节点副本之间脑裂的技术问题,本申请提供了一种防止分布式数据库脑裂的方法、装置及电子设备。
[0005]第一方面,本申请提供了一种防止分布式数据库脑裂的方法,应用于管理节点,所述方法包括:
[0006]向业务组件节点发送第一心跳信息;
[0007]若在第一预设时间段内接收到来自于与业务组件节点对应的代理模块的第二心跳信息,基于所述第二心跳信息确定所述业务组件节点是否出现异常;
[0008]若所述业务组件节点出现异常,向所述与业务组件节点对应的代理模块发送切换指令,所述切换指令用于指示所述代理模块控制所述业务组件节点切换为备机或者下线。
[0009]可选地,所述方法还包括:
[0010]若在第一预设时间段内未接收到来自于业务组件节点的第二心跳信息,将自身切换为备机或者下线。
[0011]可选地,所述方法还包括:
[0012]若所述业务组件节点未出现异常,返回执行向业务组件节点发送第一心跳信息的步骤,并重置所述第一预设时间段。
[0013]第二方面,本申请提供了一种防止分布式数据库脑裂的方法,应用于与业务组件节点对应的代理模块,所述方法包括:
[0014]确定在第二预设时间段内是否接收到来自于管理节点的第一心跳信息;
[0015]若在所述第二预设时间段内接收到来自于管理节点的第一心跳信息,确定是否接收到来自于管理节点的切换指令;
[0016]若接收到所述切换指令,将自身所在的业务组件节点置切换为备机或者下线。
[0017]可选地,所述方法还包括:
[0018]若在所述第二预设时间段内未接收到来自于管理节点的第一心跳信息,将自身所在的业务组件节点切换为备机或者下线。
[0019]可选地,所述方法还包括:
[0020]若未接收到所述切换指令,获取自身的状态信息;
[0021]向所述管理节点发送包含所述状态信息的第二心跳信息。
[0022]第三方面,本申请提供了一种防止分布式数据库脑裂的装置,应用于管理节点,所述装置包括:
[0023]第一发送模块,用于向业务组件节点发送第一心跳信息;
[0024]第一确定模块,用于若在第一预设时间段内接收到来自于与业务组件节点对应的代理模块的第二心跳信息,基于所述第二心跳信息确定所述业务组件节点是否出现异常;
[0025]第二发送模块,用于若所述业务组件节点出现异常,向所述与业务组件节点对应的代理模块发送切换指令,所述切换指令用于指示所述代理模块控制所述业务组件节点切换为备机或者下线。
[0026]可选地,所述装置还包括:
[0027]第一切换模块,用于若在第一预设时间段内未接收到来自于业务组件节点的第二心跳信息,将自身切换为备机或者下线。
[0028]可选地,所述装置还包括:
[0029]执行模块,用于若所述业务组件节点未出现异常,返回执行向业务组件节点发送第一心跳信息的步骤,并重置所述第一预设时间段。
[0030]第四方面,本申请提供了一种防止分布式数据库脑裂的装置,应用于与业务组件节点对应的代理模块,所述装置包括:
[0031]第二确定模块,用于确定在第二预设时间段内是否接收到来自于管理节点的第一心跳信息;
[0032]第三确定模块,用于若在所述第二预设时间段内接收到来自于管理节点的第一心跳信息,确定是否接收到来自于管理节点的切换指令;
[0033]第二切换模块,用于若接收到所述切换指令,将自身所在的业务组件节点置切换为备机或者下线。
[0034]可选地,所述装置还包括:
[0035]第三切换模块,用于若在所述第二预设时间段内未接收到来自于管理节点的第一心跳信息,将自身所在的业务组件节点切换为备机或者下线。
[0036]可选地,所述装置还包括:
[0037]获取模块,用于若未接收到所述切换指令,获取自身的状态信息;
[0038]第三发送模块,用于向所述管理节点发送包含所述状态信息的第二心跳信息。
[0039]第五方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0040]存储器,用于存放计算机程序;
[0041]处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的防止分布式数据库脑裂的方法或者第二方面任一所述的防止分布式数据库脑裂的方法。
[0042]第六方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上
存储有防止分布式数据库脑裂的方法程序,所述防止分布式数据库脑裂的方法程序被处理器执行时实现第一方面任一所述的防止分布式数据库脑裂的方法,或者,第二方面任一所述的防止分布式数据库脑裂的方法的步骤。
[0043]本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
[0044]本申请实施例在业务组件节点出现异常时,可以通过代理模块指示业务组件节点切换为备机或者下线,实现在业务组件节点出现异常(如网络异常等)时,管理节点可以将隔离区的业务组件节点自动下线或设置成备机的保护状态,避免了在网络异常或分区时出现双主和脑裂的情况,提高了数据的安全性和数据一致性。
附图说明
[0045]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0046]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0047]图1为本申请实施例提供的一种防止分布式数据库脑裂的方法的一种流程图;
[0048]图2为本申请实施例提供的一种防止分布式数据库脑裂的方法的另一种流程图;
[0049]图3为本申请实施例提供的另一种防止分布式数据库脑裂的方法的一种流程图;
[0050]图4为本申请实施例提供的另本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种防止分布式数据库脑裂的方法,其特征在于,应用于管理节点,所述方法包括:向业务组件节点发送第一心跳信息;若在第一预设时间段内接收到来自于与业务组件节点对应的代理模块的第二心跳信息,基于所述第二心跳信息确定所述业务组件节点是否出现异常;若所述业务组件节点出现异常,向所述与业务组件节点对应的代理模块发送切换指令,所述切换指令用于指示所述代理模块控制所述业务组件节点切换为备机或者下线。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若在第一预设时间段内未接收到来自于业务组件节点的第二心跳信息,将自身切换为备机或者下线。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述业务组件节点未出现异常,返回执行向业务组件节点发送第一心跳信息的步骤,并重置所述第一预设时间段。4.一种防止分布式数据库脑裂的方法,其特征在于,应用于与业务组件节点对应的代理模块,所述方法包括:确定在第二预设时间段内是否接收到来自于管理节点的第一心跳信息;若在所述第二预设时间段内接收到来自于管理节点的第一心跳信息,确定是否接收到来自于管理节点的切换指令;若接收到所述切换指令,将自身所在的业务组件节点置切换为备机或者下线。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若在所述第二预设时间段内未接收到来自于管理节点的第一心跳信息,将自身所在的业务组件节点切换为备机或者下线。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:若未接收到所述切换指令,获取自身的状态信息;向所述管理节点发送包含所述状态信息的第二心跳信息。7.一种防止分布式数据库脑裂的装置,其特征在于...

【专利技术属性】
技术研发人员:刘勇
申请(专利权)人:金篆信科有限责任公司
类型:发明
国别省市:

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

1