[发明专利]分布式锁实现方法、系统、设备及存储介质在审
| 申请号: | 201811468636.3 | 申请日: | 2018-12-03 |
| 公开(公告)号: | CN111258976A | 公开(公告)日: | 2020-06-09 |
| 发明(设计)人: | 安金龙;刘业辉;张飞;张宁;高相斌;王彦明 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
| 主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F16/176 |
| 代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 袁礼君;阚梓瑄 |
| 地址: | 100086 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分布式 实现 方法 系统 设备 存储 介质 | ||
本发明提供了一种分布式锁实现方法、系统、设备及存储介质,该方法包括以下步骤:创建多个锁文件,将各个锁文件分别存储至分布式文件系统的各个目标路径,各个锁文件包括锁状态信息;接收锁申请请求,将请求者信息写入请求的目标锁对应的锁状态信息,锁申请请求包括请求者信息;判断目标锁的锁状态信息与请求者信息是否一致;如果一致,则确定请求者获取目标锁成功;如果不一致,则确定请求者获取目标锁失败。本发明通过布式文件系统实现了一种大数据场景下的简单高效的分布式锁,从而实现在多并发场景下对共享资源的互斥操作;同时,本发明无需引入其他存储或者服务,降低了系统复杂度,降低了开发成本。
技术领域
本发明涉及物流领域,具体地说,涉及一种基于HDFS文件系统的分布式锁实现方法、系统、设备及存储介质。
背景技术
随着大数据时代的到来,hadoop框架已经成为大数据领域的基础架构,使用hadoop来进行大数据处理已经成为非常便捷、普及的事情。Hadoop主要由计算模块MapReduce和分布式文件存储模块(Hadoop Distributed File System,HDFS)组成,使用HDFS进行文件存储已经成为非常成熟和通用的技术,但是在大数据场景下对共享资源的互斥访问依然存在问题。与此同时在互联网环境中,几乎所有大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在大数据和互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。在分布式系统中,共享资源互斥访问问题非常普遍,而针对访问共享资源的互斥问题,常用的解决方案就是使用分布式锁。
在很多场景中,为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有时需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了,也就是说单纯的Java API并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案。针对分布式锁的实现,目前比较常用的有以下几种方案:基于数据库(mysql)实现分布式锁、基于缓存(redis,memcached,tair)实现分布式锁、基于Zookeeper实现分布式锁。
其中,基于数据库表实现分布式锁,要实现分布式锁,最简单的方式可能就是直接创建一张锁表,然后通过操作该表中的数据来实现了。当要锁住某个方法或资源时,就在该表中增加一条记录,想要释放锁的时候就删除这条记录。
创建这样一张数据库表methodLock,包含4个字段:id(主键)、method_name(锁定的方法名)、desc(备注信息)和update_time(更新时间)。当想要锁住某个方法时,执行以下SQL:
insert into methodLock(method_name,desc)values(‘method_name’,‘desc’)
因为对method_name做了唯一性约束,如果有多个请求同时提交到数据库的话,数据库会保证只有一个操作可以成功,那么就可以认为操作成功的那个线程获得了该方法的锁,可以执行方法体内容。当方法执行完毕之后,想要释放锁的话,需要执行以下Sq:
delete from methodLock where method_name='method_name'
基于数据库表实现分布式锁这种简单的实现有以下几个问题:
a.这把锁强依赖数据库的可用性,数据库是一个单点,一旦数据库挂掉,会导致业务系统不可用;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811468636.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:矿井井下巷道气体检测装置
- 下一篇:电梯控制系统及电梯控制方法





