CN113806388A - 基于分布式锁的业务处理方法及装置 - Google Patents

基于分布式锁的业务处理方法及装置 Download PDF

Info

Publication number
CN113806388A
CN113806388A CN202111106703.9A CN202111106703A CN113806388A CN 113806388 A CN113806388 A CN 113806388A CN 202111106703 A CN202111106703 A CN 202111106703A CN 113806388 A CN113806388 A CN 113806388A
Authority
CN
China
Prior art keywords
distributed lock
value
bitmap
service
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111106703.9A
Other languages
English (en)
Inventor
戴进敏
谭汉清
佘俊胜
王稳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202111106703.9A priority Critical patent/CN113806388A/zh
Publication of CN113806388A publication Critical patent/CN113806388A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

基于分布式锁的业务处理方法及装置
技术领域
本发明涉及分布式锁技术领域,具体而言,涉及一种基于分布式锁的业务处理方法及装置。
背景技术
随着互联网技术的发展,分布式技术虽然带来了很多的好处,但是也随之带来更多的技术挑战。分布式锁是用来解决分布式一致性的方案之一,保证了在分布式环境下对同一资源的顺序性修改。但随之带来的就是性能的损耗,尤其在并发量非常大的情况下。有一些业务场景下,会遇到针对多个资源进行同步访问的情况,这就需要使用联锁。联锁的方案是同时设置多个分布式锁,性能问题会非常糟糕。例如Redis联锁的底层原理是通过对多个key依次建立一个分布式锁,当所有锁都设置成功才会成功。
多个锁容易碰到相互等待的情况,这又加大了联锁的实现难度。多个进程同时抢锁时,很容易造成锁等待。例如联锁需要获取1到5这5个锁。线程1此时获取了1、2、5三个锁,线程2此时获取了3、4这两个锁。这就会造成锁等待,后续流程是两个线程同时失败,并等待一个随机事件再次发起。
由此可见,如何减少联锁时出现锁等待的情况,以提高业务的处理效率是目前急需解决的问题。
发明内容
本发明为了减少联锁时出现锁等待的情况,以提高业务的处理效率,提出了一种基于分布式锁的业务处理方法及装置。
为了实现上述目的,根据本发明的一个方面,提供了一种基于分布式锁的业务处理方法,该方法包括:
在处理业务时获取分布式锁,其中,所述分布式锁对应的数据中包含位图,所述位图包含多个比特位,每个比特位对应一个资源;
判断所述业务所要求的每个资源在所述位图上对应的比特位上的数值是否均为第一值,若是,则将所述数值更新为第二值然后释放所述分布式锁,若否,则直接释放所述分布式锁。
可选的,该基于分布式锁的业务处理方法,还包括:
在所述业务处理完成之后获取所述分布式锁;
将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第一值,然后释放所述分布式锁。
可选的,在所述直接释放所述分布式锁之后,还包括:
不断获取所述分布式锁,直至所述业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,此时将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第二值然后释放所述分布式锁。
可选的,该基于分布式锁的业务处理方法,还包括:
在Java虚拟机关闭时,通过所述Java虚拟机的关闭钩子,将所述Java虚拟机的各线程所锁定的资源在所述位图上对应的比特位的数值设置为第一值。
可选的,所述分布式锁对应的数据为缓存中的键。
可选的,所述第一值为0,所述第二值为1。
为了实现上述目的,根据本发明的另一方面,提供了一种基于分布式锁的业务处理装置,该装置包括:
第一分布式锁获取模块,用于在处理业务时获取分布式锁,其中,所述分布式锁对应的数据中包含位图,所述位图包含多个比特位,每个比特位对应一个资源;
第一处理模块,用于判断所述业务所要求的每个资源在所述位图上对应的比特位上的数值是否均为第一值,若是,则将所述数值更新为第二值然后释放所述分布式锁,若否,则直接释放所述分布式锁。
可选的,该基于分布式锁的业务处理装置,还包括:
第二分布式锁获取模块,用于在所述业务处理完成之后获取所述分布式锁;
第二处理模块,用于将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第一值,然后释放所述分布式锁。
可选的,该基于分布式锁的业务处理装置,还包括:
第三处理模块,用于不断获取所述分布式锁,直至所述业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,此时将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第二值然后释放所述分布式锁。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于分布式锁的业务处理方法中的步骤。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述基于分布式锁的业务处理方法中的步骤。
本发明的有益效果为:
本发明在处理业务时获取分布式锁,若所述业务所要求的任意一个资源在所述位图上对应的比特位上的数值为第二值,则直接释放所述分布式锁,若所述业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,则将所述数值更新为第二值然后释放所述分布式锁,本发明通过位图来记载各资源的锁定状态,使得每个线程获取分布式锁的时间较短,便于其他线程获取分布式锁进行业务处理,由此减少联锁时出现锁等待的情况,提高了业务的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例基于分布式锁的业务处理方法的第一流程图;
图2是本发明实施例基于分布式锁的业务处理方法的第二流程图;
图3是本发明实施例第一处理示意图;
图4是本发明实施例第二处理示意图;
图5是本发明实施例第三处理示意图;
图6是本发明实施例第四处理示意图;
图7是本发明实施例基于分布式锁的业务处理装置的第一结构框图;
图8是本发明实施例基于分布式锁的业务处理装置的第二结构框图;
图9是本发明实施例计算机设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
需要说明的是,本发明的基于分布式锁的业务处理方法应用于线程,即本发明方法的实施主体为线程。
图1是本发明实施例基于分布式锁的业务处理方法的第一流程图,如图1所示,在本发明一个实施例中,本发明的基于分布式锁的业务处理方法包括步骤S101和步骤S102。
步骤S101,在处理业务时获取分布式锁,其中,所述分布式锁对应的数据中包含位图,所述位图包含多个比特位,每个比特位对应一个资源。
在本发明中,位图bitmap作为一种独特的数据结构,按位进行存储数据,通常用来判断某些值是否存在。比如判断用户是否存在,则根据用户ID对应到位图的下标,下标位置对应的值为0则代表用户不存在,为1则代表用户存在。
本发明预设了位图bitmap,将位图bitmap存为缓存Redis的一个键key,位图bitmap上的每一个比特位bit对应一个资源,用比特位上的数值来表示对应资源的占用情况,例如用1表示对应的资源被占用,用0表示对应的资源未被占用。
在本发明中,各线程在处理业务时争抢位图bitmap对应的缓存Redis中的键key,若某个线程争抢到了该键key,则该线程为该键key设置键值,键值设置成功后表示该线程获取到了分布式锁。
在本发明中,本步骤的分布式锁对应的数据指的是位图bitmap对应的缓存Redis中的键key。
步骤S102,判断所述业务所要求的每个资源在所述位图上对应的比特位上的数值是否均为第一值,若是,则将所述数值更新为第二值然后释放所述分布式锁,若否,则直接释放所述分布式锁。
在本发明中,第一值用于表示比特位对应的资源未被锁定,第二值用于表示比特位对应的资源被锁定。在本发明一个实施例中,所述第一值为0,所述第二值为1。在本发明另一个实施例中,所述第一值为1,所述第二值为0。
在本发明中,位图bitmap中各比特位上的数值来表示对应资源的占用情况。线程在获取到分布式锁之后,首先判断本线程处理的业务所要求的各资源在所述位图上对应的比特位上的数值是否均为第一值,若均为第一值,则说明业务所要求的各资源均未被锁定,此时线程将数值更新为第二值,将业务所要求的各资源锁定,表示资源被占用了。同一时间一个资源只能被一个线程锁定。
在本发明中,若业务所要求的至少一个资源在所述位图上对应的比特位上的数值为第二值,则说明至少一个资源已经被锁定了,此时,线程直接释放分布式锁,把机会留给下一个线程,很可能下个线程要锁定的资源不会冲突,由此可以提升并发度。
本发明通过设置位图,各线程操作的是同一个key,但是针对的是不同的bit位操作,这样既可以减少锁的数量,也可以减小锁的冲突度。只有当操作同一bit位时才会相互冲突。
在本发明一个实施例中,在上述步骤S102中直接释放所述分布式锁之后,本发明方法还包括:
不断获取所述分布式锁,直至所述业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,此时将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第二值然后释放所述分布式锁。
在本发明中,若业务所要求的至少一个资源在所述位图上对应的比特位上的数值为第二值,则说明至少一个资源已经被锁定了,此时,线程直接释放分布式锁。后续该线程则不断尝试获取该分布式锁,直至获取分布式锁后发现业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,这时该线程将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第二值然后释放所述分布式锁。
图2是本发明实施例基于分布式锁的业务处理方法的第二流程图,如图2所示,在本发明一个实施例中,本发明的基于分布式锁的业务处理方法还包括步骤S201和步骤S202。
步骤S201,在所述业务处理完成之后获取所述分布式锁。
在本发明中,当线程处理完业务后,需要将业务所要求的每个资源在所述位图上对应的比特位上的数值重新恢复为第一值。具体的,当线程处理完业务后,该线程不断的尝试获取分布式锁,直至获取到分布式锁。
步骤S202,将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第一值,然后释放所述分布式锁。
在本发明中,当线程处理完业务后获取到分布式锁,该线程将所述业务所要求的每个资源在所述位图上对应的比特位上的数值从第二值更新为第一值,然后释放分布式锁。
下面将结合具体的实施例对本发明方法进行解释说明。
如图3所示,当一个线程获取到分布式锁时:
1、线程1获取分布式锁。
2、通过bitmap位图的形式,把要锁定的多个资源映射到bitmap上,并把bitmap存为一个Redis的key。每个资源对应bitmap上的一个bit,bit位是0,则表示该记录没被锁定,等于1则代表该记录已被锁定。
3、立刻释放锁,不用等待业务处理结束。
如图4所示,当有第二个线程要获取锁,并没有冲突时:
1、线程2获取分布式锁,此时线程1已经释放锁,所以线程2可以顺利获取锁。
2、判断线程2处理的业务所要求多个资源对应的比特位上是否有冲突(其中,比特位上的值为1则表示有冲突,为0则表示没冲突),没有冲突则设置对应的比特位值为1。
3、释放锁。
如图5所示,当有第二个线程要获取锁,并有冲突时:
1、线程2获取分布式锁,此时线程1已经释放锁,所以线程2可以顺利获取锁。
2、判断线程2处理的业务所要求多个资源对应的位图上是否有冲突,发现有一个位置已被占用。
3、释放锁。这里释放锁的原因是把机会留给下一个线程,很可能下个线程要操作的记录不会冲突,这样也就能够提升并发度。
4、重试整个步骤。
在本发明一个实施例中,本发明方法还包括:
在Java虚拟机(JVM)关闭时,通过所述Java虚拟机的关闭钩子(shutdownhook),将所述Java虚拟机的各线程所锁定的资源在所述位图上对应的比特位的数值设置为第一值。
在本发明中,本发明依托于位图进行多资源的锁定,但是当JVM进程结束时应该释放掉对应的记录,防止造成死锁。
在本发明中,一个JVM对应多个线程。如图6所示,当线程对应的Java虚拟机(JVM)关闭时,Java虚拟机的关闭钩子(shutdownhook)从缓存中获取该Java虚拟机的各线程所锁定的资源信息,其中,当线程设置位图成功时会把所锁定的资源信息记录在redis缓存中。进而关闭钩子(shutdownhook)将所述Java虚拟机的各线程所锁定的资源在所述位图上对应的比特位上的数值设置为第一值,防止造成死锁。
此外,如果是kill-9这种强制停机,shutdownhook并不会起作用。因此在项目启动时,同时会去检查redis缓存,并执行清理操作。
由以上实施例可以看出,本发明的基于分布式锁的业务处理方法至少实现了以下有益效果:
1、本发明通过位图技术减少了联锁的数量以及联锁的冲突概率;
2、本发明在大并发或者多锁的场景下,能够很明显的提升系统的高并发能力,解决系统的单点瓶颈问题。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于同一发明构思,本发明实施例还提供了一种基于分布式锁的业务处理装置,可以用于实现上述实施例所描述的基于分布式锁的业务处理方法,如下面的实施例所述。由于基于分布式锁的业务处理装置解决问题的原理与基于分布式锁的业务处理方法相似,因此基于分布式锁的业务处理装置的实施例可以参见基于分布式锁的业务处理方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是本发明实施例基于分布式锁的业务处理装置的第一结构框图,如图7所示,在本发明一个实施例中,本发明的基于分布式锁的业务处理装置包括:
第一分布式锁获取模块1,用于在处理业务时获取分布式锁,其中,所述分布式锁对应的数据中包含位图,所述位图包含多个比特位,每个比特位对应一个资源;
第一处理模块2,用于判断所述业务所要求的每个资源在所述位图上对应的比特位上的数值是否均为第一值,若是,则将所述数值更新为第二值然后释放所述分布式锁,若否,则直接释放所述分布式锁。
图8是本发明实施例基于分布式锁的业务处理装置的第二结构框图,如图8所示,在本发明一个实施例中,本发明的基于分布式锁的业务处理装置还包括:
第二分布式锁获取模块3,用于在所述业务处理完成之后获取所述分布式锁;
第二处理模块4,用于将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第一值,然后释放所述分布式锁。
在本发明一个实施例中,本发明的基于分布式锁的业务处理装置还包括:
第三处理模块,用于不断获取所述分布式锁,直至所述业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,此时将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第二值然后释放所述分布式锁。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图9所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述基于分布式锁的业务处理方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种基于分布式锁的业务处理方法,其特征在于,包括:
在处理业务时获取分布式锁,其中,所述分布式锁对应的数据中包含位图,所述位图包含多个比特位,每个比特位对应一个资源;
判断所述业务所要求的每个资源在所述位图上对应的比特位上的数值是否均为第一值,若是,则将所述数值更新为第二值然后释放所述分布式锁,若否,则直接释放所述分布式锁。
2.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,还包括:
在所述业务处理完成之后获取所述分布式锁;
将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第一值,然后释放所述分布式锁。
3.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,在所述直接释放所述分布式锁之后,还包括:
不断获取所述分布式锁,直至所述业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,此时将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第二值然后释放所述分布式锁。
4.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,还包括:
在Java虚拟机关闭时,通过所述Java虚拟机的关闭钩子,将所述Java虚拟机的各线程所锁定的资源在所述位图上对应的比特位的数值设置为第一值。
5.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,所述分布式锁对应的数据为缓存中的键。
6.根据权利要求1所述的基于分布式锁的业务处理方法,其特征在于,所述第一值为0,所述第二值为1。
7.一种基于分布式锁的业务处理装置,其特征在于,包括:
第一分布式锁获取模块,用于在处理业务时获取分布式锁,其中,所述分布式锁对应的数据中包含位图,所述位图包含多个比特位,每个比特位对应一个资源;
第一处理模块,用于判断所述业务所要求的每个资源在所述位图上对应的比特位上的数值是否均为第一值,若是,则将所述数值更新为第二值然后释放所述分布式锁,若否,则直接释放所述分布式锁。
8.根据权利要求7所述的基于分布式锁的业务处理装置,其特征在于,还包括:
第二分布式锁获取模块,用于在所述业务处理完成之后获取所述分布式锁;
第二处理模块,用于将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第一值,然后释放所述分布式锁。
9.根据权利要求7所述的基于分布式锁的业务处理装置,其特征在于,还包括:
第三处理模块,用于不断获取所述分布式锁,直至所述业务所要求的每个资源在所述位图上对应的比特位上的数值均为第一值,此时将所述业务所要求的每个资源在所述位图上对应的比特位上的数值更新为第二值然后释放所述分布式锁。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至6任意一项所述的方法。
CN202111106703.9A 2021-09-22 2021-09-22 基于分布式锁的业务处理方法及装置 Pending CN113806388A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111106703.9A CN113806388A (zh) 2021-09-22 2021-09-22 基于分布式锁的业务处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111106703.9A CN113806388A (zh) 2021-09-22 2021-09-22 基于分布式锁的业务处理方法及装置

Publications (1)

Publication Number Publication Date
CN113806388A true CN113806388A (zh) 2021-12-17

Family

ID=78939828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111106703.9A Pending CN113806388A (zh) 2021-09-22 2021-09-22 基于分布式锁的业务处理方法及装置

Country Status (1)

Country Link
CN (1) CN113806388A (zh)

Similar Documents

Publication Publication Date Title
US8930584B2 (en) System and method for providing a linearizable request manager
CN108572876B (zh) 一种读写锁的实现方法及装置
US8892803B2 (en) Interrupt on/off management apparatus and method for multi-core processor
US8996811B2 (en) Scheduler, multi-core processor system, and scheduling method
CN106844014B (zh) 分布式事务防悬挂的实现方法和装置
CN110188110B (zh) 一种构建分布式锁的方法及装置
CN109032796B (zh) 一种数据处理方法和装置
US9086911B2 (en) Multiprocessing transaction recovery manager
US8666958B2 (en) Approaches to reducing lock communications in a shared disk database
JP3910577B2 (ja) リソース・コンテンションを管理するための方法および装置
US8132174B2 (en) Concurrency management in cluster computing of business applications
CN112241400A (zh) 一种基于数据库实现分布式锁的方法
CN111459963B (zh) 核心账务交易并发处理方法及装置
CN115658153A (zh) 睡眠锁优化方法、装置、电子设备及存储介质
CN113342507B (zh) 一种分布式锁服务实现方法、装置及计算机设备
CN112000670B (zh) 一种多线程程序数据统一管理方法、系统及电子设备
CN110908968B (zh) 一种文件锁解锁时避免惊群的方法、装置、设备及存储介质
JP2007172611A (ja) 方法、記憶媒体(仮想共有環境におけるプロセッサの有効利用法)
CN112667409A (zh) 一种可重入的分布式排它锁实现方法
CN113806388A (zh) 基于分布式锁的业务处理方法及装置
CN111984428A (zh) 一种资源访问时自旋锁的实现方法、装置及设备
CN115858123A (zh) 一种多线程任务调度处理方法
US9418175B2 (en) Enumeration of a concurrent data structure
CN106815061B (zh) 一种业务处理方法及装置
CN113961364A (zh) 一种大规模锁系统实现方法、装置、存储介质和服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination