[发明专利]一种分布式锁服务方法、获取方法及相应装置有效
| 申请号: | 201510783915.9 | 申请日: | 2015-11-16 |
| 公开(公告)号: | CN106708608B | 公开(公告)日: | 2020-08-11 |
| 发明(设计)人: | 任奕琳;张卓;陶阳宇;李超;陆一峰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/46 |
| 代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 服务 方法 获取 相应 装置 | ||
本申请提供了一种分布式锁服务方法、获取方法及相应装置。其中,所述分布式锁服务方法包括:分布式系统中待获取分布式锁的节点进程或当前已持有分布式锁的节点进程,实时接收包含与本节点进程待获取的或已持有的所述分布式锁相对应的最新锁版本的数据;所述锁版本的高低用于标识各所述节点进程向同一个分布式锁发起获取请求的优先级的高低;根据所述节点进程实时接收的包含所述最新锁版本的数据,以及预先生成的所述节点进程的专有锁版本,所述节点进程判断所述最新锁版本是否高于所述专有锁版本;所述节点进程根据本节点进程当前对所述分布式锁的获取状态,以及所述是否高于的判断结果,进行释放、获取或等待所述分布式锁的相应处理。
技术领域
本申请涉及分布式应用领域,尤其涉及一种分布式锁服务方法、获取方法及相应装置。
背景技术
在分布式应用中,往往会遇到多个进程提供同一服务的情况,这些进程用于对共享资源直接发起访问,或对能够直接访问共享资源的相应任务或作业进行管理控制。因此在访问共享资源或对相应任务以及作业进行管理控制的时候,还需要采用一定手段来防止各进程彼此间的干扰,从而保证服务和数据的一致性,分布式锁机制便是通常采用的一种手段,即进程在对共享资源直接发起访问前,或对能够直接访问共享资源的各任务以及作业进行管理控制前,需获取与所述共享资源或所述任务以及作业对应的唯一的分布式锁,由此来保证服务和数据的一致性。
同时,在分布式应用中,高可用性集群(HA)是一种有效保证业务连续性的分布式解决方案,对应该解决方案,基于高可用性的分布式锁(HAlock)是常用的一种分布式锁,例如基于Zookeeper(一种开源的分布式应用程序协调服务系统)实现的分布式锁。在应用了基于高可用性的分布式锁的大型分布式系统中,常见的一种场景是将系统中用于对共享资源直接发起访问,或对能够直接访问共享资源的相应任务或作业进行管理控制的进程,分布在分布式系统中的各个机器节点上,则这些进程往往作为节点进程由分布式系统的调度器管理,并提供直接访问共享资源的服务,或提供对能够直接访问共享资源的相应任务或作业进行管理控制的服务。在这种场景下,若由于网络或节点内硬件不能稳定运行等原因,需要令原进程退出并放锁,且将原进程所提供的服务迁移至新进程时,若是因为网络故障导致原节点进程与分布式系统的调度器的通信处于故障状态而发生的迁移,那么原节点进程一直无法收到退出命令,因此它持有的锁也不会退出或超时,同时,新节点进程将一直无法获得锁,进而导致系统无法提供相应的服务。另外,对于应用了基于高可用性的分布式锁的大型分布式系统,进程重启是一种最常见的故障场景,该故障需要重启后的进程能够立即拿到锁,基于高可用性的分布式锁便能够有效的实现该功能。基于高可用性的分布式锁实现该功能的具体方法是给锁的持有者维护一定时间段的租约期,在租约期内,其它人无法拿到锁,从而保证重启后的原进程能够立即拿到锁。但由于租约期的存在,若是发生将原进程所提供的服务迁移至新进程的情况,则新进程需要等待原进程所持有的锁超时后,即超过租约期,才能拿到锁,导致迁移过程中原进程不能快速放锁,并且在等待时间内系统无法提供相应的服务。
综上,在原节点进程所提供的服务迁移至另一节点进程时,或原节点进程重启时,或其它场景下需要原来持有分布式锁的节点进程或其它种类进程主动快速退出且完成放锁处理时,在传统的分布式锁机制下,原节点进程或原来持有分布式锁的各类进程必须等待当前持有的分布式锁超时或收到退出命令才能执行退出操作,进而完成放锁处理,该方法有如下缺点:
1、需要重新获得分布式锁的进程或节点进程不能快速获得锁,导致系统长时间不能提供相应的服务。
2、当原进程或原节点进程不能正常退出时,或将导致多个进程提供同一服务,或使新的进程无法拿到锁,从而使服务和数据的一致性无法保证,或使系统不能提供相应的服务,从而导致系统的服务故障和数据的处理错误。
发明内容
本申请提供一种分布式锁服务方法、获取方法及相应装置,以解决现有的分布式锁机制不能使需要重新获得分布式锁的进程或节点进程不能快速获得锁,以及当前持有分布式锁的进程或节点进程不能正常退出的问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510783915.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:缓存数据的管理方法及装置
- 下一篇:站内搜索词的显示方法及装置





