分布式锁容灾处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:35450112 阅读:17 留言:0更新日期:2022-11-03 12:04
本发明专利技术提供了一种分布式锁容灾处理方法、装置、电子设备及存储介质,该方法应用于锁客户端中,对分布式锁服务集群进行容灾处理,分布式锁服务集群包括多个服务节点,每个服务节点配置有多个分组,任意两个服务节点配置的分组相同,不同分组的主节点在多个服务节点中均匀分布,包括:根据锁操作请求中的锁标识,确定与锁标识对应的目标分组,根据节点分组信息,确定目标分组对应的目标主节点;若锁客户端与目标主节点之间通信故障,根据节点分组信息确定与目标主节点对应的候选节点;将锁操作请求发送至候选节点,使得候选节点在目标分组中启动锁操作的同步处理。本发明专利技术解决了主节点故障时无法提供服务的问题,提高了分布式锁操作服务的容灾能力。务的容灾能力。务的容灾能力。

【技术实现步骤摘要】
分布式锁容灾处理方法、装置、电子设备及存储介质


[0001]本专利技术涉及分布式系统
,尤其涉及一种分布式锁容灾处理方法、装置、电子设备及存储介质。

技术介绍

[0002]在分布式部署的应用集群中,经常会存在一些业务场景,为了保证某些业务逻辑的准确性,或者避免某些逻辑被重复执行,需要限制多个应用进程或线程对共享数据资源进行互斥访问,例如秒杀下单、商品抢购等场景,通常的解决方案是引入分布式锁技术。
[0003]现有技术中,可以通过Redis或者Zookeeper来实现分布式锁。通过Redis实现的分布式锁包括Redisson Lock和RedLock。Redisson Lock提供了丰富的锁操作接口,服务端单主(Master)节点提供服务,主从节点数据基于异步复制机制,具有很高的并发能力,但是,由于主从节点基于异步复制机制,数据同步存在延迟,保证不了主从节点间数据的强一致性;当主节点宕掉时,锁状态可能没及时同步到从节点,主节点切换到从节点继续提供服务时,有可能会导致锁的互斥性被破坏,可靠性比较低。为了弥补Redisson Lock在可靠性方面的不足,Redis还提供了另外一种锁RedLock,集群采用多主节点部署,每次锁操作都需要过半主节点的应答,若有少数主节点宕掉,其它主节点可继续提供服务,保证锁操作的可靠性,但是,由于多个主节点间并不会实时同步数据,若有主节点宕掉,内存数据丢失,节点重启后锁状态清空,不能立即添加到集群中继续提供服务,集群恢复正常状态周期比较长,而且当客户端与服务节点出现网络抖动或者隔离时,对应服务节点不可提供服务。基于Zookeeper创建临时有序节点实现的分布式锁,通过ZAB协议保证集群多节点数据的强一致性,可靠性与容灾能力较高。但是,系统并发能力与吞吐量不高,而且在原主节点关闭,未选举出新主节点时,不能正常提供锁操作服务。
[0004]可见,通过Redis和Zookeeper实现的分布式锁在主节点故障时,不能正常提高锁操作服务,容灾能力较低,可用性较低,稳定性较差。

技术实现思路

[0005]本专利技术实施例提供一种分布式锁容灾处理方法、装置、电子设备及存储介质,以提高分布式锁操作服务的容灾能力,提高分布式锁操作服务的可用性和稳定性。
[0006]依据本专利技术实施例的第一方面,提供了一种分布式锁容灾处理方法,应用于锁客户端中,对分布式锁服务集群进行容灾处理,所述分布式锁服务集群包括多个服务节点,每个所述服务节点配置有多个分组,任意两个所述服务节点配置的分组相同,不同分组对应的主节点在所述多个服务节点中均匀分布,所述方法包括:
[0007]根据锁操作请求中的锁标识,确定与所述锁标识对应的目标分组,并根据节点分组信息,确定所述目标分组对应的目标主节点;
[0008]若所述锁客户端与所述目标主节点之间通信故障,则根据所述节点分组信息确定与所述目标主节点对应的候选节点;
[0009]将所述锁操作请求发送至所述候选节点,使得所述候选节点在所述目标分组中启动锁操作的同步处理。
[0010]依据本专利技术实施例的第二方面,提供了一种分布式锁容灾处理装置,应用于锁客户端中,对分布式锁服务集群进行容灾处理,所述分布式锁服务集群包括多个服务节点,每个所述服务节点配置有多个分组,任意两个所述服务节点配置的分组相同,不同分组的主节点在所述多个服务节点中均匀分布,所述装置包括:
[0011]目标主节点确定模块,用于根据锁操作请求中的锁标识,确定与所述锁标识对应的目标分组,并根据节点分组信息,确定所述目标分组对应的目标主节点;
[0012]候选节点确定模块,用于若所述锁客户端与所述目标主节点之间通信故障,则根据所述节点分组信息确定与所述目标主节点对应的候选节点;
[0013]锁操作请求发送模块,用于将所述锁操作请求发送至所述候选节点,使得所述候选节点在所述目标分组中启动锁操作的同步处理。
[0014]依据本专利技术实施例的第三方面,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的分布式锁容灾处理方法的步骤。
[0015]依据本专利技术实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的分布式锁容灾处理方法的步骤。
[0016]本专利技术实施例提供的分布式锁容灾处理方法、装置、电子设备及存储介质,通过根据锁操作请求中的锁标识确定与锁标识对应的目标分组,并根据节点分组信息确定目标分组对应的目标主节点,在锁客户端与目标主节点之间通信故障时,根据节点分组信息确定与目标主节点对应的候选节点,将锁操作请求发送至候选节点,使得候选节点在目标分组中启动锁操作的同步处理,实现了在锁客户端与目标主节点之间通信故障时,由候选节点启动锁操作的同步处理,解决了主节点故障时无法提供锁操作服务的问题,提高了分布式锁操作服务的容灾能力,进而提高了分布式锁操作服务的可用性和稳定性。
附图说明
[0017]图1是本专利技术实施例提供的一种分布式锁容灾处理方法的流程图;
[0018]图2是本专利技术实施例中分布式锁服务系统的架构图;
[0019]图3是本专利技术实施例中目标主节点关闭时的容灾处理示意图;
[0020]图4是本专利技术实施例中目标主节点宕机时的容灾处理示意图;
[0021]图5是本专利技术实施例中锁客户端与目标主节点之间网络抖动或隔离时的容灾处理示意图;
[0022]图6是本专利技术实施例中的一种分布式锁服务集群的结构示意图;
[0023]图7是本专利技术实施例提供的一种分布式锁容灾处理装置的结构框图。
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本发
明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]图1是本专利技术实施例提供的一种分布式锁容灾处理方法的流程图,该分布式锁容灾处理方法应用于锁客户端中,对分布式锁服务集群进行容灾处理,所述分布式锁服务集群包括多个服务节点,优选是包括至少三个服务节点,保证分布式锁服务的高可用性,每个所述服务节点配置有多个分组,任意两个所述服务节点配置的分组相同,不同分组对应的主节点在多个服务节点中均匀分布,也就是每个服务节点作为主节点的分组数量相同,例如分布式锁服务集群中有A、B、C三个服务节点,有分组1、分组2、分组3三个分组,分组1的主节点为A,分组2的主节点为B,分组3的主节点为B。其中,分布式锁服务集群可以是基于一致性算法,例如Paxos协议的,以Paxos协议为例,那么多个分组即多个Paxos分组。一个服务节点可以理解为是一台服务器,一个服务节点中的多个分组可以并行进行数据处理,可以理解为一个服务本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式锁容灾处理方法,其特征在于,应用于锁客户端中,对分布式锁服务集群进行容灾处理,所述分布式锁服务集群包括多个服务节点,每个所述服务节点配置有多个分组,任意两个所述服务节点配置的分组相同,不同分组对应的主节点在所述多个服务节点中均匀分布,所述方法包括:根据锁操作请求中的锁标识,确定与所述锁标识对应的目标分组,并根据节点分组信息,确定所述目标分组对应的目标主节点;若所述锁客户端与所述目标主节点之间通信故障,则根据所述节点分组信息确定与所述目标主节点对应的候选节点;将所述锁操作请求发送至所述候选节点,使得所述候选节点在所述目标分组中启动锁操作的同步处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述节点分组信息确定与所述目标主节点对应的候选节点,包括:根据所述节点分组信息,将与所述目标主节点相邻的下一个服务节点确定为所述候选节点。3.根据权利要求1或2所述的方法,其特征在于,在所述若所述锁客户端与所述目标主节点之间通信故障,则锁客户端根据所述节点分组信息确定所述目标主节点对应的候选节点之前,还包括下述其中一种:在接收到所述目标主节点发送的关闭命令时,确定所述锁客户端与所述目标主节点之间通信故障;在捕获到连接关闭信号时,确定所述锁客户端与所述目标主节点之间通信故障;在将所述锁操作请求发送至所述主节点的失败次数达到次数阈值时,确定所述锁客户端与所述目标主节点之间通信故障。4.根据权利要求3所述的方法,其特征在于,所述候选节点接收到所述锁操作请求后,若在所述目标分组中未选举出新的主节点,则所述候选节点基于所述锁操作请求,向所述目标分组中的其他服务节点发送锁同步操作请求。5.根据权利要求3所述的方法,其特征在于,在所述将所述锁操作请求发送至所述候选节点之后,还包括:接收所述候选节点发送来的新的主节点信息,所述新的主节点信息是所述候选节点在所述目标分组中选举出新的主节点且所述新的主节点是所述候选节点以外的服务节点时发送的;根据所述新的主节点信息,将所述锁操作请求重新发送至所述新的主节点,由所述新的主节点向所述目标分组中的其他服务节点发送锁同步操作请求。6.根据权利要求3所述的方法,其特征在于,在所述将所述锁操作请求发送至所述候选节点之后,还包括:接收注册中心服务器发送来的所述目标分组中新的主节点信息,所述注册中心服务器用于管理所述分布式锁服务集群。7.根据权利要求1或2所述的方法,其特征在于,在所述若所述锁客户端与所述目标主节点之间通信故障,则根据所述节点分组信息确...

【专利技术属性】
技术研发人员:刘丹胡国才闫城哲
申请(专利权)人:北京城市网邻信息技术有限公司
类型:发明
国别省市:

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

1