一种实现分布式业务锁的方法、系统、设备和存储介质技术方案

技术编号:36462118 阅读:13 留言:0更新日期:2023-01-25 23:01
本发明专利技术提供一种实现分布式业务锁的方法、系统、设备和存储介质,方法包括:响应于接收到调用加锁接口对资源加分布式排它锁或分布式共享锁的请求,使用Redisson对所述资源加分布式锁;响应于Redisson分布式锁加锁成功,查询是否存在其他锁数据;响应于不存在其他锁数据,直接对所述资源加分布式排它锁或分布式共享锁;以及响应于存在其他锁数据,根据所述其他锁数据的持续时间和作用域确定是否对所述资源执行加分布式排它锁或分布式共享锁的操作。本发明专利技术在Redisson分布式锁的基础上提供了共享锁和排它锁,以此实现分布式共享锁及分布式排他锁的功能。式排他锁的功能。式排他锁的功能。

【技术实现步骤摘要】
一种实现分布式业务锁的方法、系统、设备和存储介质


[0001]本专利技术涉及分布式系统领域,更具体地,特别是指一种实现分布式业务锁的方法、系统、设备和存储介质。

技术介绍

[0002]分布式系统中,经常存在业务多并发问题,比如财务稽核单据,权限相同的多个财务稽核人员是可以看到相同的单据的,但是同一时间内一张单据只能被一个财务人员进行稽核,为了保证业务逻辑的一致性,必须在财务稽核人员打开这张单据时对这条单据进行加锁,加锁成功后才允许稽核,类似多种可能存在并发问题的场景都需要加锁对资源进行控制,以保证资源一致性。另外,数据库锁机制虽然可以很好地解决并发情况下数据不一致问题,但锁定粒度较小,比如行锁,而业务进行并发控制的锁粒度一般比数据行要大,例如财务稽核单据是需要把锁加在查看按钮上。

技术实现思路

[0003]有鉴于此,本专利技术实施例的目的在于提出一种实现分布式业务锁的方法、系统、计算机设备及计算机可读存储介质,本专利技术在Redisson分布式锁的基础上提供了共享锁和排它锁,以此实现分布式共享锁及分布式排他锁的功能,同时支持设置共享锁和排它锁包括应用级别、会话级别、业务上下文级别的作用域以及支持设置锁的持续时间,根据锁的作用域和持续时间决定锁的有效范围。
[0004]基于上述目的,本专利技术实施例的一方面提供了一种实现分布式业务锁的方法,包括如下步骤:响应于接收到调用加锁接口对资源加分布式排它锁或分布式共享锁的请求,使用Redisson对所述资源加分布式锁;响应于Redisson分布式锁加锁成功,查询是否存在其他锁数据;响应于不存在其他锁数据,直接对所述资源加分布式排它锁或分布式共享锁;以及响应于存在其他锁数据,根据所述其他锁数据的持续时间和作用域确定是否对所述资源执行加分布式排它锁或分布式共享锁的操作。
[0005]在一些实施方式中,所述根据所述其他锁数据的持续时间和作用域确定是否对所述资源执行加分布式排它锁或分布式共享锁的操作包括:根据锁的持续时间判断锁是否已经失效;响应于锁已经失效,将所述锁数据从存储表中删除,并对所述资源执行加分布式排它锁或分布式共享锁的操作;响应于锁未失效,根据锁的作用域判断是否对所述资源执行加分布式排它锁或分布式共享锁的操作。
[0006]在一些实施方式中,所述根据锁的作用域判断是否对所述资源执行加分布式排它锁或分布式共享锁的操作包括:响应于作用域为应用级别,不执行加分布式排它锁的操作;响应于作用域为会话级别,根据加锁请求的会话与存在的锁的会话确定是否对所述资源执行加分布式排它锁的操作;以及响应于作用域为业务上下文级别,根据加锁请求的业务上下文与存在的锁的业务上下文确定是否对所述资源执行加分布式排它锁的操作。
[0007]在一些实施方式中,所述根据锁的作用域判断是否对所述资源执行加分布式排它
锁或分布式共享锁的操作包括:响应于作用域为应用级别,根据存在的锁的类型决定是否对所述资源执行加分布式共享锁的操作;响应于作用域为会话级别,根据加锁请求的会话与存在的锁的会话确定是否对所述资源执行加分布式共享锁的操作;以及响应于作用域为业务上下文级别,根据加锁请求的业务上下文与存在的锁的业务上下文确定是否对所述资源执行加分布式共享锁的操作。
[0008]本专利技术实施例的另一方面,提供了一种实现分布式业务锁的系统,包括:预锁模块,配置用于响应于接收到调用加锁接口对资源加分布式排它锁或分布式共享锁的请求,使用Redisson对所述资源加分布式锁;查询模块,配置用于响应于Redisson分布式锁加锁成功,查询是否存在其他锁数据;加锁模块,配置用于响应于不存在其他锁数据,直接对所述资源加分布式排它锁或分布式共享锁;以及执行模块,配置用于响应于存在其他锁数据,根据所述其他锁数据的持续时间和作用域确定是否对所述资源执行加分布式排它锁或分布式共享锁的操作。
[0009]在一些实施方式中,所述执行模块配置用于:根据锁的持续时间判断锁是否已经失效;响应于锁已经失效,将所述锁数据从存储表中删除,并对所述资源执行加分布式排它锁或分布式共享锁的操作;响应于锁未失效,根据锁的作用域判断是否对所述资源执行加分布式排它锁或分布式共享锁的操作。
[0010]在一些实施方式中,所述执行模块配置用于:响应于作用域为应用级别,不执行加分布式排它锁的操作;响应于作用域为会话级别,根据加锁请求的会话与存在的锁的会话确定是否对所述资源执行加分布式排它锁的操作;以及响应于作用域为业务上下文级别,根据加锁请求的业务上下文与存在的锁的业务上下文确定是否对所述资源执行加分布式排它锁的操作。
[0011]在一些实施方式中,所述根据锁的作用域判断是否对所述资源执行加分布式排它锁或分布式共享锁的操作包括:响应于作用域为应用级别,根据存在的锁的类型决定是否对所述资源执行加分布式共享锁的操作;响应于作用域为会话级别,根据加锁请求的会话与存在的锁的会话确定是否对所述资源执行加分布式共享锁的操作;以及响应于作用域为业务上下文级别,根据加锁请求的业务上下文与存在的锁的业务上下文确定是否对所述资源执行加分布式共享锁的操作。
[0012]本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
[0013]本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
[0014]本专利技术具有以下有益技术效果:在Redisson分布式锁的基础上提供了共享锁和排它锁,以此实现分布式共享锁及分布式排他锁的功能,同时支持设置共享锁和排它锁包括应用级别、会话级别、业务上下文级别的作用域以及支持设置锁的持续时间,根据锁的作用域和持续时间决定锁的有效范围。
附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0016]图1为本专利技术提供的实现分布式业务锁的方法的实施例的示意图;
[0017]图2为本专利技术提供的实现分布式业务锁的系统的实施例的示意图;
[0018]图3为本专利技术提供的实现分布式业务锁的计算机设备的实施例的硬件结构示意图;
[0019]图4为本专利技术提供的实现分布式业务锁的计算机存储介质的实施例的示意图。
具体实施方式
[0020]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。
[0021]需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现分布式业务锁的方法,其特征在于,包括如下步骤:响应于接收到调用加锁接口对资源加分布式排它锁或分布式共享锁的请求,使用Redisson对所述资源加分布式锁;响应于Redisson分布式锁加锁成功,查询是否存在其他锁数据;响应于不存在其他锁数据,直接对所述资源加分布式排它锁或分布式共享锁;以及响应于存在其他锁数据,根据所述其他锁数据的持续时间和作用域确定是否对所述资源执行加分布式排它锁或分布式共享锁的操作。2.根据权利要求1所述的方法,其特征在于,所述根据所述其他锁数据的持续时间和作用域确定是否对所述资源执行加分布式排它锁或分布式共享锁的操作包括:根据锁的持续时间判断锁是否已经失效;响应于锁已经失效,将所述锁数据从存储表中删除,并对所述资源执行加分布式排它锁或分布式共享锁的操作;响应于锁未失效,根据锁的作用域判断是否对所述资源执行加分布式排它锁或分布式共享锁的操作。3.根据权利要求2所述的方法,其特征在于,所述根据锁的作用域判断是否对所述资源执行加分布式排它锁或分布式共享锁的操作包括:响应于作用域为应用级别,不执行加分布式排它锁的操作;响应于作用域为会话级别,根据加锁请求的会话与存在的锁的会话确定是否对所述资源执行加分布式排它锁的操作;以及响应于作用域为业务上下文级别,根据加锁请求的业务上下文与存在的锁的业务上下文确定是否对所述资源执行加分布式排它锁的操作。4.根据权利要求2所述的方法,其特征在于,所述根据锁的作用域判断是否对所述资源执行加分布式排它锁或分布式共享锁的操作包括:响应于作用域为应用级别,根据存在的锁的类型决定是否对所述资源执行加分布式共享锁的操作;响应于作用域为会话级别,根据加锁请求的会话与存在的锁的会话确定是否对所述资源执行加分布式共享锁的操作;以及响应于作用域为业务上下文级别,根据加锁请求的业务上下文与存在的锁的业务上下文确定是否对所述资源执行加分布式共享锁的操作。5.一种实现分布式业务锁的系统,其特征在于,包括:预锁模块,配置用于响应于接收到调用加锁接口对资源加分布式排它锁或分布式共享锁的请求,使用Red...

【专利技术属性】
技术研发人员:李静
申请(专利权)人:浪潮通用软件有限公司
类型:发明
国别省市:

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

1