一种资源锁定时间的控制方法、系统、装置及存储介质制造方法及图纸

技术编号:36873034 阅读:10 留言:0更新日期:2023-03-15 20:12
本发明专利技术提出的一种资源锁定时间的控制方法、系统、装置及存储介质,所述方法包括:业务服务向资源服务申请资源加锁,锁定要执行的串行程序。业务服务获取执行权限后,执行串行程序,更新业务执行状态为进行中,将业务服务状态注册到监控服务中。业务服务定时向监控服务传达业务服务执行状态。监控服务根据业务服务状态,更新资源服务资源锁的过期时间,并向资源服务器发送时间更新指令,由资源服务重新设定过期时间。当监控服务无法监控的业务执行状态时,向资源服务发送解锁指令;当业务服务完成后,向资源服务发送解锁指令。资源服务收到解锁指令后进行资源解锁。本发明专利技术能够在监控服务的监控下,及时根据业务服务执行状态延长资源锁定的时间。源锁定的时间。源锁定的时间。

【技术实现步骤摘要】
一种资源锁定时间的控制方法、系统、装置及存储介质


[0001]本专利技术涉及计算机
,更具体的说是涉及一种资源锁定时间的控制方法、系统、装置及存储介质。

技术介绍

[0002]业务服务应用程序在高并发环境下,需要对某一资源进行单独控制时,往往需要对该资源进行加锁控制,获得该资源的业服务执行相应的程序,未获得资源锁的进程需要等待,直到获得资源锁的进程执行完成释放锁以后,获取资源锁,执行相应的串行程序,多业务服务进程对某段资源代码的串行执行。
[0003]在分布式场景下,资源服务和业务服务进程的服务往往是在不同服务器上的,这就存在一个问题,就是业务服务器对资源锁定时间的控制,如果锁定时间过长,影响业务应用的响应速度;如果锁定时间过短,该业务服务还没有执行完成,其他业务也进入资源临界区进行执行,不能控制资源的独享。因此对于分布式场景下,对资源锁定时间控制是一个很难确定问题。
[0004]目前,为了解决资源锁定时间控制的问题主要是在业务服务锁定资源的时候设定锁定过期时间,资源服务在时间过期后将该业务服务的锁定解除,因此业务在锁定时指定时间根据业务服务执行的时间进行预估一个时间,一般是比业务服务执行串行程序所用的时间长。但是随着业务量的增加,业务服务执行的时间可能会变长,资源锁过期时间设置过长会影响其他业务服务的执行。一旦出现业务服务执行时间超过资源锁过期时间的情况,会导致资源服务将该业务的锁给删除,允许其他业务服务锁定资源,造成资源同时被两个业务服务共享执行。因此,现有的方案没有从根本上解决资源锁定时间的问题。

技术实现思路

[0005]针对以上问题,本专利技术的目的在于提供一种资源锁定时间的控制方法、系统、装置及存储介质,能够在监控服务的监控下,及时根据业务服务执行状态延长资源锁定的时间。
[0006]本专利技术为实现上述目的,通过以下技术方案实现:一种资源锁定时间的控制方法,包括:
[0007]部署资源服务和监控服务;
[0008]业务服务向资源服务申请资源加锁,设定锁过期时间,在多业务服务并发下拿到锁,锁定要执行的串行程序;
[0009]业务服务获取执行权限后,执行串行程序,更新业务执行状态为进行中,将业务服务状态注册到监控服务中;
[0010]业务服务在规定时间内向监控服务发送心跳数据包,传达业务服务执行状态;监控服务根据业务服务状态,以及锁定时间是否要过期,更新资源服务资源锁的过期时间,并向资源服务器发送时间更新指令;
[0011]资源服务收到时间更新指令后,重新设定资源服务资源锁的过期时间;
[0012]当监控服务无法监控的业务执行状态时,向资源服务发送解锁指令;
[0013]当业务服务完成后,向资源服务发送解锁指令;
[0014]资源服务收到解锁指令后进行资源解锁。
[0015]进一步,所述部署资源服务和监控服务包括:
[0016]在redis服务器上部署资源服务,在netty服务器上部署监控服务。
[0017]进一步,所述业务服务向资源服务申请资源加锁,设定锁过期时间,在多业务服务并发下拿到锁,锁定要执行的串行程序,包括:
[0018]业务服务向redis服务器上设置变量serviceId,如果该变量不存在,业务服务设置成功,即获取资源锁,锁定要执行的串行程序。
[0019]进一步,所述业务服务获取执行权限后,执行串行程序,更新业务执行状态为进行中,将业务服务状态注册到监控服务中,包括:
[0020]业务服务获取资源锁后,将业务服务的地址端口、在redis服务器上设置的变量名称、设置的变量过期时间作为注册信息发送给netty服务器,同时将业务服务的地址和端口发送给redis服务器,并保存在URL变量中;
[0021]netty服务器在收到注册信息后,开启监控业务。
[0022]进一步,所述业务服务在规定时间内向监控服务发送心跳数据包,传达业务服务执行状态,包括:
[0023]业务服务根据串行代码的执行情况更新业务服务状态;
[0024]将业务服务状态生成心跳数据包,定时发送到netty服务器。
[0025]进一步,所述监控服务根据业务服务状态,以及锁定时间是否要过期,更新资源服务资源锁的过期时间,包括:
[0026]netty服务器在心跳数据包后,对心跳数据包中的业务服务状态进行判断,如果是未完成状态,则将当前时间和资源服务资源锁的过期时间进行比较,如果超过预设的时间差,则向redis服务器发送请求,重新设定资源服务资源锁的过期时间。
[0027]进一步,所述当监控服务无法监控的业务执行状态时,向资源服务发送解锁指令,包括:
[0028]如果netty服务器判定业务服务状态为完成状态,则向redis服务器发送请求,以获取redis服务器上的URL变量值;
[0029]将获取的URL变量值与业务服务器的地址和端口信息进行比对;
[0030]如果一致,netty服务器向redis服务器发送解锁请求;如果不一致,则不再向redis服务器发送解锁请求。
[0031]相应的,本专利技术还公开了一种资源锁定时间的控制系统,包括:
[0032]部署模块,用于部署资源服务和监控服务;
[0033]资源加锁模块,用于业务服务向资源服务申请资源加锁,设定锁过期时间,在多业务服务并发下拿到锁,锁定要执行的串行程序;
[0034]注册模块,用于业务服务获取执行权限后,执行串行程序,更新业务执行状态为进行中,将业务服务状态注册到监控服务中;
[0035]监控数据传输模块,用于业务服务在规定时间内向监控服务发送心跳数据包,传达业务服务执行状态;
[0036]更新判断模块,用于监控服务根据业务服务状态,以及锁定时间是否要过期,更新资源服务资源锁的过期时间,并向资源服务器发送时间更新指令;
[0037]锁定时间更新模块,用于资源服务收到时间更新指令后,重新设定资源服务资源锁的过期时间;
[0038]第一解锁判定模块,用于当监控服务无法监控的业务执行状态时,向资源服务发送解锁指令;
[0039]第二解锁判定模块,用于当业务服务完成后,向资源服务发送解锁指令;
[0040]解锁模块,用于资源服务收到解锁指令后进行资源解锁。
[0041]相应的,本专利技术公开了一种资源锁定时间的控制装置,包括:
[0042]存储器,用于存储资源锁定时间的控制程序;
[0043]处理器,用于执行所述资源锁定时间的控制程序时实现如上文任一项所述资源锁定时间的控制方法的步骤。
[0044]相应的,本专利技术公开了一种可读存储介质,所述可读存储介质上存储有资源锁定时间的控制程序,所述资源锁定时间的控制程序被处理器执行时实现如上文任一项所述资源锁定时间的控制方法的步骤。
[0045]对比现有技术,本专利技术有益效果在于:一种资源锁定时间的控制方法、系统、装置及存储介质,通过在业务本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种资源锁定时间的控制方法,其特征在于,包括:部署资源服务和监控服务;业务服务向资源服务申请资源加锁,设定锁过期时间,在多业务服务并发下拿到锁,锁定要执行的串行程序;业务服务获取执行权限后,执行串行程序,更新业务执行状态为进行中,将业务服务状态注册到监控服务中;业务服务在规定时间内向监控服务发送心跳数据包,传达业务服务执行状态;监控服务根据业务服务状态,以及锁定时间是否要过期,更新资源服务资源锁的过期时间,并向资源服务器发送时间更新指令;资源服务收到时间更新指令后,重新设定资源服务资源锁的过期时间;当监控服务无法监控的业务执行状态时,向资源服务发送解锁指令;当业务服务完成后,向资源服务发送解锁指令;资源服务收到解锁指令后进行资源解锁。2.根据权利要求1所述的资源锁定时间的控制方法,其特征在于,所述部署资源服务和监控服务包括:在redis服务器上部署资源服务,在netty服务器上部署监控服务。3.根据权利要求2所述的资源锁定时间的控制方法,其特征在于,所述业务服务向资源服务申请资源加锁,设定锁过期时间,在多业务服务并发下拿到锁,锁定要执行的串行程序,包括:业务服务向redis服务器上设置变量serviceId,如果该变量不存在,业务服务设置成功,即获取资源锁,锁定要执行的串行程序。4.根据权利要求3所述的资源锁定时间的控制方法,其特征在于,所述业务服务获取执行权限后,执行串行程序,更新业务执行状态为进行中,将业务服务状态注册到监控服务中,包括:业务服务获取资源锁后,将业务服务的地址端口、在redis服务器上设置的变量名称、设置的变量过期时间作为注册信息发送给netty服务器,同时将业务服务的地址和端口发送给redis服务器,并保存在URL变量中;netty服务器在收到注册信息后,开启监控业务。5.根据权利要求4所述的资源锁定时间的控制方法,其特征在于,所述业务服务在规定时间内向监控服务发送心跳数据包,传达业务服务执行状态,包括:业务服务根据串行代码的执行情况更新业务服务状态;将业务服务状态生成心跳数据包,定时发送到netty服务器。6.根据权利要求5所述的资源锁定时间的控制方法,其特征在于,所述监控服务根据业务服务状态,以及锁定时间是否要过期,更新资源服务资源...

【专利技术属性】
技术研发人员:崔广银
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1