[发明专利]一种基于网络的分布式锁的实现方法、设备及介质在审
申请号: | 201811617626.1 | 申请日: | 2018-12-28 |
公开(公告)号: | CN109753364A | 公开(公告)日: | 2019-05-14 |
发明(设计)人: | 丁波;喻波;王志海;刘旺;韩振国;安鹏 | 申请(专利权)人: | 北京明朝万达科技股份有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/54;H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100097 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加锁 分布式锁 客户端 操作请求 满足条件 排序 第三方软件 客户端队列 单点故障 访问资源 共享资源 失败信息 有效访问 重入性 网络 返回 服务 客户 | ||
1.一种基于网络的分布式锁的实现方法,其特征在于,应用于服务器端的主节点,包括:
所述主节点接收至少一个客户端发来的分布式锁的加锁操作请求;
将所述至少一个客户端的所述加锁操作请求对应的所述至少一个客户端,加入到所述当前分布式锁的客户端队列中并进行排序,获取首先进行加锁操作请求的当前客户端;
判断所述当前客户端的加锁请求是同步加锁请求还是异步加锁请求;
根据不同的加锁请求使用不同的加锁策略,使得满足条件的所述当前客户端对应的加锁请求获得分布式锁,并访问资源信息,不满足条件,则返回加锁失败信息。
2.根据权利要求1所述的基于网络的分布式锁的实现方法,其特征在于,所述根据不同的加锁请求使用不同的加锁策略,使得满足条件的客户端对应的加锁请求获得分布式锁,并访问资源信息,不满足条件,则返回加锁失败信息,具体包括,如果所述当前客户端发起异步加锁请求,所述主节点检查资源请求队列是否为空,如果为空,则直接将所述当前客户端发起的异步加锁请求加入所述资源请求队列中,返回加锁成功,如果不为空,则检查所述资源请求队列中是否有所述当前客户端,如果有则什么都不做,没有则将所述当前客户端发起的异步加锁请求加入所述资源请求队列尾部,在所述资源请求队列的队首的锁持有者使用完某资源后,发起锁释放操作,此时队首的锁持有者出队,新的位于队首的应用获得该资源的锁;如果所述当前客户端发起同步加锁请求,所述主节点检查资源请求队列是否为空,如果为空,则直接将所述当前客户端发起的同步加锁请求加入所述资源请求队列中,返回加锁成功,如果不为空,则检查所述当前客户端是否为资源的锁的当前持有者,如果是,则返回成功,否则返回失败。
3.根据权利要求2所述的基于网络的分布式锁的实现方法,其特征在于,所述将所述至少一个客户端的所述加锁操作请求对应的所述至少一个客户端,加入到所述当前分布式锁的客户端队列中并进行排序,包括根据客户端发起的请求的时间进行排序,或者,根据客户端发起请求的优先级进行排序。
4.根据权利要求1所述的基于网络的分布式锁的实现方法,其特征在于,所述服务器端还包括从节点,所述主节点在进行分布式锁实现的操作过程中,将数据推送到所述从节点,所述从节点收到所述数据后更新并保存缓存数据,使得所述主节点与所述从节点的数据同步。
5.根据权利要求3或4所述的基于网络的分布式锁的实现方法,其特征在于,在所述主节点正常的情况下,所述从节点周期性的发送心跳检测,监控主节点,当所述主节点发生异常时,所述从节点根据同步的数据,启动对外服务,定期发送广播,同时选举出新的从节点,并保持新的从节点与代替主节点的从节点的数据同步。
6.根据权利要求5所述的基于网络的分布式锁的实现方法,其特征在于,所述主节点周期地通过网络,以UDP的方式对外发送广播,参与资源争用的所述至少一个客户端接受到广播后,再以TCP的方式向服务器签到,服务器收到签到信息后,更新内部的各个所述客户端的签到信息,然后服务器根据各个客户端的签到信息对各个资源等待队列中的客户端做检查,将那些较长时间没有签到的客户端从资源的等待队列中删除,以此来防止死锁。
7.一种基于网络的分布式锁的实现方法,其特征在于,应用于客户端,包括:
所述至少一个客户端向服务器的主节点发送加锁操作请求,根据所述服务器的客户端队列中的排序方式,获取首先进行加锁操作请求的当前客户端;
所述当前客户端向服务器端发送的加锁请求为同步加锁请求或者异步加锁请求;
根据服务器端对于不同加锁请求使用的不同加锁策略,若满足条件,则所述当前客户端从服务器端获得分布式锁并访问资源信息,若不满足条件,则所述当前客户端从服务器端接收到加锁失败信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明朝万达科技股份有限公司,未经北京明朝万达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811617626.1/1.html,转载请声明来源钻瓜专利网。