[发明专利]分布式锁实现方法、装置及可读存储介质在审
申请号: | 201810242246.8 | 申请日: | 2018-03-22 |
公开(公告)号: | CN108399107A | 公开(公告)日: | 2018-08-14 |
发明(设计)人: | 张振铎;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/50 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 逯恒 |
地址: | 430000 湖北省武汉市东湖新技术*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 临界资源 应用程序 分布式锁 资源锁 可读存储介质 占用 应用程序访问 分布式系统 访问请求 高效运行 判断结果 情况判断 保证 进程 | ||
本发明实施例提供一种分布式锁实现方法、装置及可读存储介质。该方法包括:在接收到应用程序对目标临界资源的访问请求时,判断所述目标临界资源的资源锁是否存在;若所述目标临界资源的资源锁不存在,则允许所述应用程序访问所述目标临界资源,并为所述目标临界资源的资源锁设置对应的生存时间值;在所述应用程序占用所述目标临界资源后,基于所述生存时间值执行生存时间值重设命令;根据所述生存时间值重设命令的执行情况判断所述应用程序是否发生异常;若判断结果为所述应用程序发生异常,则取消所述应用程序对所述目标临界资源的占用。由此,解决了传统分布式锁由于进程异常造成锁无限期占用的问题,保证了分布式系统的高效运行。
技术领域
本发明涉及软件工程领域,具体而言,涉及一种分布式锁实现方法、装置及可读存储介质。
背景技术
在当前的软件工程领域,特别是大数据计算领域,经常会有分布式系统的部署,以便并行高效的进行大数据量的计算。在分布式系统中,经常会有进程间互斥的访问某种资源或者互斥的执行某种任务的情形。例如某个消息,只能被集群中一台机器消费即可,多台重复消费会造成严重问题,例如机器崩溃。或者是某个文件,同一时间只允许单个进程读写,如果被多个进程读写,也会造成严重问题。如何在实现上述的互斥访问需求的基础上保证分布式系统的高效运行,是本领域技术人员亟待解决的技术问题。
发明内容
为了克服现有技术中的上述不足,本发明的目的在于提供一种分布式锁实现方法、装置及可读存储介质,以解决或者改善上述问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
结合第一方面,本发明实施例提供一种分布式锁实现方法,应用于电子设备,所述电子设备包括Redis数据库,所述Redis数据库中包括有各个临界资源的资源锁信息,所述方法包括:
在接收到应用程序对目标临界资源的访问请求时,判断所述目标临界资源的资源锁是否存在;
若所述目标临界资源的资源锁不存在,则允许所述应用程序访问所述目标临界资源,并为所述目标临界资源的资源锁设置对应的生存时间值;
在所述应用程序占用所述目标临界资源后,基于所述生存时间值执行生存时间值重设命令;
根据所述生存时间值重设命令的执行情况判断所述应用程序是否发生异常;
若判断结果为所述应用程序发生异常,则取消所述应用程序对所述目标临界资源的占用。
可选地,在所述在接收到应用程序对目标临界资源的访问请求时,判断所述目标临界资源的资源锁是否存在的步骤之后,所述方法还包括:
若所述目标临界资源的资源锁存在,则拒绝所述应用程序对目标临界资源的访问请求。
可选地,所述基于所述生存时间值执行生存时间值重设命令的状态下:
所述电子设备基于所述生存时间值进行时间计时,并在每一次计时时间到达所述生存时间值时进行下一次时间计时。
可选地,所述根据所述生存时间值重设命令的执行情况判断所述应用程序是否发生异常的步骤,包括:
判断所述电子设备是否在每一次计时时间到达所述生存时间值时及时进行下一次时间计时;
若是,则判定所述应用程序未发生异常;
若否,则判断所述应用程序发生异常。
可选地,所述若判断结果为所述应用程序发生异常,则取消所述应用程序对所述目标临界资源的占用的步骤,包括:
若判断结果为所述应用程序发生异常,则在本次计时时间到达生存时间值时,销毁所述目标临界资源的资源锁,以取消所述应用程序对所述目标临界资源的占用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810242246.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:管理物理主机的方法和装置
- 下一篇:读取操作和软解码时序