[发明专利]分布式锁执行方法、装置及系统、应用服务器和存储介质有效
申请号: | 201810688442.8 | 申请日: | 2018-06-28 |
公开(公告)号: | CN108874552B | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 张铭明 | 申请(专利权)人: | 杭州云毅网络科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F16/176 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 巴翠昆;王宝筠 |
地址: | 310000 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 执行 方法 装置 系统 应用 服务器 存储 介质 | ||
1.一种分布式锁执行方法,其特征在于,应用于应用服务器的进程中需访问同一共享资源的多个线程,所述分布式锁执行方法包括:
线程利用从缓存服务器获取的当前时间生成唯一的时间标识,基于所述时间标识构建并存储分布式锁信息,向所述缓存服务器发送包括所述分布式锁信息的加锁指令,以供所述缓存服务器确定发放分布式锁至该线程时存储所述分布式锁信息;接收所述缓存服务器发送的与所述加锁指令对应的返回结果;
若所述返回结果表示该线程获得分布式锁,则该线程访问共享资源并执行与所述共享资源对应的任务操作;
该线程在与所述共享资源对应的执行任务操作结束后,仅在本地存储的分布式锁信息与所述缓存服务器存储的分布式锁信息一致的情况下,才释放所述分布式锁;包括:该线程在执行与所述共享资源对应的任务操作结束后,发送分布式锁信息获取指令至所述缓存服务器,并接收所述缓存服务器发送的当前分布式锁信息;判断该线程本地存储的分布式锁信息中的时间标识与所述当前分布式锁信息中的时间标识是否一致;若不一致,则该线程抛出异常提示消息,以触发回滚机制对该线程执行回滚操作使该线程回滚到获得分布式锁之前的最近状态;
若所述返回结果表示该线程未获得分布式锁,则该线程执行抢锁操作;
其它线程在持续执行判断分布式锁是否超时时,在该线程占用分布式锁超时情况下,由所述其它线程释放分布式锁。
2.如权利要求1所述的方法,其特征在于,所述线程利用从缓存服务器获取的当前时间生成唯一的时间标识,包括:
该线程发送时间戳获取指令至所述缓存服务器;
该线程获取所述缓存服务器反馈的返回值;其中,所述返回值包括所述缓存服务器的当前时间,以及,当前这一秒已经逝去的微秒数值;
该线程将所述当前时间与所述微秒数值组成当前时间戳,该当前时间戳即为所述时间标识。
3.如权利要求2所述的方法,其特征在于,所述基于所述时间标识构建并存储分布式锁信息包括:
构建以分布式锁标识作为键,以所述时间标识作为值的键值对;
生成并存储包括所述键值对的分布式锁信息。
4.如权利要求2所述的方法,其特征在于,所述基于所述时间标识构建并存储分布式锁信息,还包括:
设置与分布式锁对应的使用时间;
构建以分布式锁标识作为键,以所述时间标识和所述使用时间的时间戳和值作为值的键值对;或者,构建以分布式锁标识作为键,以所述时间标识的字符串和所述使用时间的字符串的合并字符串作为值的键值对;
生成并存储包括所述键值对的分布式锁信息。
5.如权利要求1所述的方法,其特征在于,
若该线程本地存储的分布式锁信息中的时间标识与所述当前分布式锁信息中的时间标识一致,则发送释放分布式锁指令至所述缓存服务器,以供所述缓存服务器删除所述分布式锁信息。
6.如权利要求1所述的方法,其特征在于,所述该线程执行抢锁操作,包括:
判断当前占用分布式锁的线程是否超时;
若当前占用分布式锁的线程超时,则发送释放分布式锁指令至所述缓存服务器,以供缓存服务器删除超时线程对应的分布式锁信息;该线程进入所述线程利用从缓存服务器获取的当前时间生成唯一的时间标识,向所述缓存服务器发送包括分布式锁信息的加锁指令的步骤;
若当前占用分布式锁的线程未超时,则重新进入所述判断当前占用分布式锁的线程是否超时步骤。
7.如权利要求6所述的方法,其特征在于,所述分布式锁信息包括以分布式锁标识作为键,以所述时间标识作为值的键值对;则所述判断当前占用分布式锁的线程是否超时,包括:
发送分布式锁信息获取指令至所述缓存服务器,并接收所述缓存服务器发送的分布式锁信息、当前时间和分布式锁的使用时间;
计算所述当前时间与所述分布式锁信息中时间标识的差值;
若所述差值是否大于所述使用时间,则表示当前占用分布式锁的线程超时;
若所述差值不大于所述使用时间,则表示当前占用分布式锁的线程未超时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州云毅网络科技有限公司,未经杭州云毅网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810688442.8/1.html,转载请声明来源钻瓜专利网。