基于分布式锁的业务处理方法及装置制造方法及图纸

技术编号:31494057 阅读:27 留言:0更新日期:2021-12-18 12:31
本发明专利技术公开了一种基于分布式锁的业务处理方法及装置,该方法包括:在处理业务时获取分布式锁,其中,所述分布式锁对应的数据中包含位图,所述位图包含多个比特位,每个比特位对应一个资源;判断所述业务所要求的每个资源在所述位图上对应的比特位上的数值是否均为第一值,若是,则将所述数值更新为第二值然后释放所述分布式锁,若否,则直接释放所述分布式锁。本发明专利技术有助于减少联锁时出现锁等待的情况,以及提高业务的处理效率。以及提高业务的处理效率。以及提高业务的处理效率。

【技术实现步骤摘要】
基于分布式锁的业务处理方法及装置


[0001]本专利技术涉及分布式锁
,具体而言,涉及一种基于分布式锁的业务处理方法及装置。

技术介绍

[0002]随着互联网技术的发展,分布式技术虽然带来了很多的好处,但是也随之带来更多的技术挑战。分布式锁是用来解决分布式一致性的方案之一,保证了在分布式环境下对同一资源的顺序性修改。但随之带来的就是性能的损耗,尤其在并发量非常大的情况下。有一些业务场景下,会遇到针对多个资源进行同步访问的情况,这就需要使用联锁。联锁的方案是同时设置多个分布式锁,性能问题会非常糟糕。例如Redis联锁的底层原理是通过对多个key依次建立一个分布式锁,当所有锁都设置成功才会成功。
[0003]多个锁容易碰到相互等待的情况,这又加大了联锁的实现难度。多个进程同时抢锁时,很容易造成锁等待。例如联锁需要获取1到5这5个锁。线程1此时获取了1、2、5三个锁,线程2此时获取了3、4这两个锁。这就会造成锁等待,后续流程是两个线程同时失败,并等待一个随机事件再次发起。
[0004]由此可见,如何减少联锁时出现锁等待的情况,以本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于分布式锁的业务处理方法,其特征在于,包括:在处理业务时获取分布式锁,其中,所述分布式锁对应的数据中包含位图,所述位图包含多个比特位,每个比特位对应一个资源;判断所述业务所要求的每个资源在所述位图上对应的比特位上的数值是否均为第一值,若是,则将所述数值更新为第二值然后释放所述分布式锁,若否,则直接释放所述分布式锁。2.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,还包括:在所述业务处理完成之后获取所述分布式锁;将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第一值,然后释放所述分布式锁。3.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,在所述直接释放所述分布式锁之后,还包括:不断获取所述分布式锁,直至所述业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,此时将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第二值然后释放所述分布式锁。4.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,还包括:在Java虚拟机关闭时,通过所述Java虚拟机的关闭钩子,将所述Java虚拟机的各线程所锁定的资源在所述位图上对应的比特位的数值设置为第一值。5.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,所述分布式锁对应的数据为缓存中的键。6.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,所述第一值为0,所述第二值为1。7.一种...

【专利技术属性】
技术研发人员:戴进敏谭汉清佘俊胜王稳
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1