System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理领域,尤其涉及一种跨微服务的分布式锁共用方法、装置、电子设备及可读存储介质。
技术介绍
1、分布式锁是一种用于在分布式系统中实现资源并发访问控制的机制,用于确保同一时间只有一个进程或线程能够访问共享资源,从而保证数据的一致性和正确性。但是分布式锁的存在没有考虑到跨微服务时,分布式锁无法传递的问题,导致微服务无法正常处理部分事务,降低了微服务的处理事务的效率。
技术实现思路
1、本专利技术提供一种跨微服务的分布式锁共用方法、装置、电子设备及可读存储介质,其目的在于提高微服务的处理事务的效率。
2、为实现上述目的,本专利技术提供的一种跨微服务的分布式锁共用方法,所述方法包括:
3、接收第一服务端发送的分布式锁申请指令,并判断是否有服务端持有所述分布式锁申请指令中的分布式锁;
4、若有服务端持有所述分布式锁,则监听所述分布式锁的锁状态,直至持有所述分布式锁的服务端释放所述分布式锁;
5、若没有服务端持有所述分布式锁,则将所述分布式锁分配给所述第一服务端;
6、当所述第一服务端需要调用第二服务端进行业务处理时,拦截所述第一服务端向第二服务端发送的调用请求;
7、将所述分布式锁的锁信息写入所述调用请求,得到目标调用请求;
8、接收所述第二服务端利用所述目标调用请求中锁信息发送的资源使用请求,对所述第二服务端进行资源开放。
9、可选地,所述判断是否有服务端持有所述分布式锁申请指
10、调用所述分布式锁的锁状态获取方法,并根据所述锁状态获取方法获取所述分布式锁的锁状态;
11、若所述锁状态为占用状态,则判定有服务端持有所述分布式锁申请指令中的分布式锁;
12、若所述锁状态为停用状态,则判定没有服务端持有所述分布式锁申请指令中的分布式锁。
13、可选地,所述将所述分布式锁分配给所述第一服务端,包括:
14、在预构建的分布式缓存系统中创建状态键;
15、通过所述第一服务端在所述分布式缓存系统中进行状态键的设置;
16、当所述第一服务端设置所述状态键成功时,则将所述分布式锁分配给所述第一服务端。
17、可选地,所述拦截所述第一服务端向第二服务端发送的调用请求,包括:
18、构建所述第一服务端的代理服务器;
19、将所述代理服务器的地址及端口号设置为与预构建的分布式缓存系统相同;
20、当所述第一服务端向第二服务端发送的调用请求时,对所述调用请求进行接收。
21、可选地,所述将所述分布式锁的锁信息写入所述调用请求,得到目标调用请求包括:
22、解析所述调用请求,得到请求头、请求体、请求地址;
23、将所述分布式锁的锁信息写入所述请求头,得到目标请求头;
24、将所述目标请求头与所述请求体及所述请求地址进行组合,得到目标调用请求。
25、可选地,所述接收所述第二服务端利用所述目标调用请求中锁信息发送的资源使用请求,对所述第二服务端进行资源开放,包括:
26、当接收到所述第二服务端发送的资源使用请求时,对所述第二服务端进行分布式锁检测,判断所述第二服务端是否持有所述分布式锁;
27、当检测到所述第二服务端持有所述分布式锁时,对所述第二服务端开放资源调用权限。
28、可选地,所述对所述第二服务端进行资源开放之后,还包括:
29、当所述第二服务端完成业务处理时,根据业务处理结果,对所述目标调用请求进行响应,并发送给第一服务端。
30、为了解决上述问题,本专利技术还提供一种跨微服务的分布式锁共用装置,所述装置包括:
31、服务端判断模块,用于接收第一服务端发送的分布式锁申请指令,并判断是否有服务端持有所述分布式锁申请指令中的分布式锁,若有服务端持有所述分布式锁,则监听所述分布式锁的锁状态,直至持有所述分布式锁的服务端释放所述分布式锁,若没有服务端持有所述分布式锁,则将所述分布式锁分配给所述第一服务端;
32、调用请求传输模块,用于当所述第一服务端需要调用第二服务端进行业务处理时,拦截所述第一服务端向第二服务端发送的调用请求,将所述分布式锁的锁信息写入所述调用请求,得到目标调用请求;
33、资源开放模块,用于接收所述第二服务端利用所述目标调用请求中锁信息发送的资源使用请求,对所述第二服务端进行资源开放。
34、为了解决上述问题,本专利技术还提供一种电子设备,所述电子设备包括:
35、存储器,存储至少一个计算机程序;及
36、处理器,执行所述存储器中存储的计算机程序以实现上述所述的跨微服务的分布式锁共用方法。
37、为了解决上述问题,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的跨微服务的分布式锁共用方法。
38、本专利技术实施例通过拦截第一服务端向第二服务端发送的调用请求,并将分布式锁的锁信息写入所述调用请求,得到目标调用请求,再将所述目标调用请求转发给第二服务端,从而实现第一服务端与第二服务端同时持有分布式锁,提高了微服务的处理事务的效率。因此,本专利技术提供的一种跨微服务的分布式锁共用方法、装置、设备及存储介质,能够提高微服务的处理事务的效率。
本文档来自技高网...【技术保护点】
1.一种跨微服务的分布式锁共用方法,其特征在于,所述方法包括:
2.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述判断是否有服务端持有所述分布式锁申请指令中的分布式锁,包括:
3.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述将所述分布式锁分配给所述第一服务端,包括:
4.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述拦截所述第一服务端向第二服务端发送的调用请求,包括:
5.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述将所述分布式锁的锁信息写入所述调用请求,得到目标调用请求包括:
6.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述接收所述第二服务端利用所述目标调用请求中锁信息发送的资源使用请求,对所述第二服务端进行资源开放,包括:
7.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述对所述第二服务端进行资源开放之后,还包括:
8.一种跨微服务的分布式锁共用装置,其特征在于,所述装置包括:
9
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的跨微服务的分布式锁共用方法。
...【技术特征摘要】
1.一种跨微服务的分布式锁共用方法,其特征在于,所述方法包括:
2.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述判断是否有服务端持有所述分布式锁申请指令中的分布式锁,包括:
3.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述将所述分布式锁分配给所述第一服务端,包括:
4.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述拦截所述第一服务端向第二服务端发送的调用请求,包括:
5.如权利要求1所述的跨微服务的分布式锁共用方法,其特征在于,所述将所述分布式锁的锁信息写入所述调用请求,得到目标调用请求包括:
【专利技术属性】
技术研发人员:张宝浩,刘海东,
申请(专利权)人:招商局金融科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。