一种集群的故障切换方法、装置及电子设备制造方法及图纸

技术编号:31456169 阅读:19 留言:0更新日期:2021-12-18 11:22
本申请公开了一种集群的故障切换方法、装置及电子设备。该方法适用于从节点,包括:响应于所述从节点所属的第一主节点处于宕机状态,判断所述从节点和所述第一主节点是否属于同一数据中心;响应于所述从节点和所述第一主节点属于同一数据中心,则发起故障切换选举流程。由此,本申请通过判断从节点和处于宕机状态的主节点是否属于同一数据中心,并在判定属于同一数据中心后,由该从节点完成自动故障切换成为新的主节点,从根本上避免了主节点分布在多个机房的情况发生,进而避免Redis集群脑裂现象发生,确保了集群的可用性,提高了集群的故障切换过程中的有效性和可靠性。的故障切换过程中的有效性和可靠性。的故障切换过程中的有效性和可靠性。

【技术实现步骤摘要】
一种集群的故障切换方法、装置及电子设备


[0001]本申请涉及数据处理
,尤其涉及一种集群的故障切换方法、装置及电子设备。

技术介绍

[0002]集群,能够通过增加服务器的数量,提供相同的服务,从而使服务器达到一个稳定、高效的状态。其中,分布式服务器群,特别是Redis(Remote Dictionary Server)集群,以其具有复制、高可用和分片特性等众多特点广受青睐。
[0003]在实际应用中,Redis等集群常常会面临进行机房(又称数据中心,Data Center)切换或对重要的业务进行多机房容灾的需求。此种情况下,需要在另一个机房对每个主节点再添加一个从节点。这样一来,若集群中有节点发生自动故障切换(Failover),主节点可能被切换至另一个机房,从而导致同一个集群的主节点分布在不同机房。进一步地,在运行过程中,若机房间网络链路出现问题,则会造成脑裂现象,导致数据无法合并。
[0004]相关技术中,集群的故障切换方法尚不完善,为了避免脑裂,通常采用整个集群拒绝服务或者发生脑裂的主节点拒绝写入的方式,或者依赖降级措施。这样一来,势必导致集群的故障切换过程中存在极大降低集群的可用性以及无法从根本上解决脑裂的技术问题。因此,如何提高集群的故障切换过程中的有效性和可靠性,进而在确保集群可用性的同时,从根本上解决脑裂问题,已成为了重要的研究方向之一。

技术实现思路

[0005]本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]为此,本申请的第一个目的在于提出一种集群的故障切换方法,用于解决现有集群的故障切换方法过程中存在的有效性低、可靠性差,进而极大降低集群的可用性以及无法从根本上解决脑裂的技术问题。
[0007]本专利技术的第二个目的在于提出另一种集群的故障切换方法。
[0008]本专利技术的第三个目的在于提出一种集群的故障切换装置。
[0009]本专利技术的第四个目的在于提出另一种集群的故障切换装置。
[0010]本专利技术的第五个目的在于提出一种电子设备。
[0011]本专利技术的第六个目的在于提出一种计算机可读存储介质。
[0012]为了实现上述目的,本申请第一方面实施例提供了一种集群的故障切换方法,适用于从节点,所述方法包括以下步骤:响应于所述从节点所属的第一主节点处于宕机状态,判断所述从节点和所述第一主节点是否属于同一数据中心;响应于所述从节点和所述第一主节点属于同一数据中心,则发起故障切换选举流程。
[0013]另外,根据本申请上述实施例的集群的故障切换方法还可以具有如下附加的技术特征:
[0014]根据本申请的一个实施例,所述判断所述从节点和所述第一主节点是否属于同一
数据中心,包括:获取所述第一主节点所属数据中心的第一标识;判断所述从节点所属数据中心的第二标识是否与所述第一标识一致;响应于所述第二标识与所述第一标识一致,则判定所述从节点和所述第一主节点属于同一数据中心。
[0015]根据本申请的一个实施例,所述发起故障切换选举流程,包括:向多个候选主节点发送故障切换选举请求;接收所述候选主节点基于所述选举请求反馈的应答消息;基于所述应答消息,获取投票数量;响应于所述投票数量大于或者等于预设数量,则切换成主节点。
[0016]根据本申请的一个实施例,还包括:响应于所述从节点和所述第一主节点非属于同一数据中心,则等待新的第二主节点发送的通知消息;响应于接收到所述通知消息,切换成所述第二主节点的从节点。
[0017]根据本申请的一个实施例,还包括:响应于预设时长内未接收到所述通知消息,则返回执行所述判断所述从节点和所述第一主节点是否属于同一数据中心。
[0018]本申请第一方面实施例提供了集群的故障切换方法,从节点可以通过响应于从节点所属的第一主节点处于宕机状态,判断从节点和第一主节点是否属于同一数据中心,进而响应于从节点和第一主节点属于同一数据中心,则发起故障切换选举流程,以实现集群的故障切换,使得通过判断从节点和处于宕机状态的主节点是否属于同一数据中心,并在判定属于同一数据中心后,由该从节点完成自动故障切换成为新的主节点,从根本上避免了主节点分布在多个机房的情况发生,进而避免Redis集群脑裂现象发生,确保了集群的可用性,提高了集群的故障切换过程中的有效性和可靠性。
[0019]为了实现上述目的,本申请第二方面实施例提供了另一种集群的故障切换方法,适用于主节点,所述方法包括以下步骤:接收从节点发送的故障切换选举请求;根据所述选举请求,判断所述从节点和所述主节点是否属于同一数据中心;响应于所述从节点和所述主节点属于同一数据中心,则向所述从节点投票。
[0020]另外,根据本申请上述实施例的集群的故障切换方法还可以具有如下附加的技术特征:
[0021]根据本申请的一个实施例,所述根据所述选举请求,判断所述从节点和所述主节点是否属于同一数据中心,包括:从所述选举请求中获取所述从节点所属数据中心的第二标识;判断所述第二标识是否与所述主节点所属数据中心的第一标识一致;响应于所述第二标识与所述第一标识一致,则判定所述从节点和所述主节点属于同一数据中心。
[0022]根据本申请的一个实施例,还包括:响应于所述从节点和所述主节点非属于同一数据中心,则拒绝向所述从节点投票。
[0023]根据本申请的一个实施例,还包括:向所述从节点发送应答消息,其中,所述应答消息携带投票指示信息。
[0024]根据本申请的一个实施例,还包括:响应于所述主节点被确定为所述从节点的新的主节点,则向所述从节点发送通知消息。
[0025]本申请第二方面实施例提供了集群的故障切换方法,主节点可以通过接收从节点发送的故障切换选举请求,并根据选举请求,判断从节点和主节点是否属于同一数据中心,进而响应于从节点和主节点属于同一数据中心,则向从节点投票,以实现集群的故障切换,使得通过判断从节点和处于宕机状态的主节点是否属于同一数据中心,并在判定属于同一
数据中心后,由该从节点完成自动故障切换成为新的主节点,从根本上避免了主节点分布在多个机房的情况发生,进而避免Redis集群脑裂现象发生,确保了集群的可用性,提高了集群的故障切换过程中的有效性和可靠性。
[0026]为了实现上述目的,本申请第三方面实施例提供了一种集群的故障切换装置,适用于从节点,所述装置包括:判断模块,用于响应于所述从节点所属的第一主节点处于宕机状态,判断所述从节点和所述第一主节点是否属于同一数据中心;发起模块,用于响应于所述从节点和所述第一主节点属于同一数据中心,则发起故障切换选举流程。
[0027]根据本申请的一个实施例,所述判断模块,包括:第一获取子模块,用于获取所述第一主节点所属数据中心的第一标识;判断子模块,用于判断所述从节点所属数据中心的第二标识是否与所述第一标识一致;判定子模块,用于响应于所述第二标识与所述第一标识一致,则判定所述从节点和所述第一主节点属于同一数据中心。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集群的故障切换方法,其特征在于,适用于从节点,所述方法包括:响应于所述从节点所属的第一主节点处于宕机状态,判断所述从节点和所述第一主节点是否属于同一数据中心;响应于所述从节点和所述第一主节点属于同一数据中心,则发起故障切换选举流程。2.根据权利要求1所述的集群的故障切换方法,其特征在于,所述判断所述从节点和所述第一主节点是否属于同一数据中心,包括:获取所述第一主节点所属数据中心的第一标识;判断所述从节点所属数据中心的第二标识是否与所述第一标识一致;响应于所述第二标识与所述第一标识一致,则判定所述从节点和所述第一主节点属于同一数据中心。3.根据权利要求1所述的集群的故障切换方法,其特征在于,所述发起故障切换选举流程,包括:向多个候选主节点发送故障切换选举请求;接收所述候选主节点基于所述选举请求反馈的应答消息;基于所述应答消息,获取投票数量;响应于所述投票数量大于或者等于预设数量,则切换成主节点。4.根据权利要求1所述的集群的故障切换方法,其特征在于,还包括:响应于所述从节点和所述第一主节点非属于同一数据中心,则等待新的第二主节点发送的通知消息;响应于接收到所述通知消息,切换成所述第二主节点的从节点。5.根据权利要求4所述的集群的故障切换方法,其特征在于,还包括:响应于预设时长内未接收到所述通知消息,则返回执行所述判断所述从节点和所述第一主节点是否属于同一数据中心。6.一种集群的故障切换方法,其特征在于,适用于主节点,所述方法包括:接收从节点发送的故障切换选举请求;根据所述选举请求,判断所述从节点和所述主节点是否属于同一数据中心;响应于所述从节点和所述主节点属于同一数据中心,则向所述从节点投票。7.根据权利要求6所述的集群的故障切换方法,其特征在于,所述根据所述选举请求,判断所述从节点和所述主节点是否属于同一数据中心,包括:从所述选举请求中获取所述从节点所属数据中心的第二标识;判断所述第二标识是否与所述主节点所属数据中心的第一标识一致;响应于所述第二标识与所述第一标识一致,则判定所述从节点和所述主节点属于同一数据中心。8.根据权利要求6所述的集群的故障切换方法,其特征在于,还包括:响应于所述从节点和所述主节点非属于同一数据中心,则拒绝向所述从节点投票。9.根据权利要求6或8所述的集群的故障切换方法,其特征在于,还包括:向所述从节点发送应答消息,其中,所述应答消息携带投票指示信息。10.根据权利要求6或8所述的集群的故障切换方法,其特征在于,还包括:响应于所述主节点被确定为所述从节点的新的主节点,则向所述从节点发送通知消
息。11.一种集群的故障切换装置,其特征在于,适用于从节点,所述装置包括:判断模块,用于响应于所述从节点所属的第一主节点处于宕机状态,判断所述从节点和所述第一主节点是否属于同一数据中心;发起模块,用于响应于所述从节点和所述第一主节点属于同一数据中心,则发起故障切换选举流程。12.根据权利要求11所述的集群的故障切换装置,其特征在于,所述判断模块,包括:第一获取子模块,...

【专利技术属性】
技术研发人员:罗明成龙
申请(专利权)人:京东科技控股股份有限公司
类型:发明
国别省市:

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

1