[发明专利]一种分布式锁实现方法和系统有效
申请号: | 201710088027.4 | 申请日: | 2017-02-19 |
公开(公告)号: | CN106776055B | 公开(公告)日: | 2019-10-25 |
发明(设计)人: | 陈良龙;邹宁勇 | 申请(专利权)人: | 网宿科技股份有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;H04L29/08;G06F16/182 |
代理公司: | 北京华智则铭知识产权代理有限公司 11573 | 代理人: | 王昌贵 |
地址: | 200030 上海市徐汇区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 实现 方法 系统 | ||
本发明公开了一种分布式锁实现方法和系统,本发明属于网络通信技术领域。所述方法包括:客户端响应应用程序针对需求的共享数据在根目录下创建子目录的请求,根据请求生成并发送第一请求数据包;中心机器接收第一请求数据包,判断中心机器中是否存在对应共享数据的子目录的路径信息,当中心机器中不存在路径信息时,在中心机器中创建对应共享数据的子目录的路径信息,并向客户端发送创建成功信号。本发明利用操作系统的基本操作如创建、删除子目录的方式实现分布式锁,不受开发语言的限制,通用性好,实现过程简单。
技术领域
本发明涉及网络通信技术领域,特别涉及一种分布式锁实现方法和系统。
背景技术
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调访问共享资源的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁,在分布式系统中,某一主机的一个应用了分布式锁的应用程序先通过获得分布式锁,才能根据该分布式锁访问共享资源。
现有技术中,分布式锁有zookeeper,大致思想即为:每个客户端对某个功能加锁时,在zookeeper上的与该功能对应的指定节点的目录下,生成一个唯一的瞬时有序节点。获取目录下的所有节点,判断最小节点是否为自己来获取锁。
在实施本发明实施例的过程中,发明人发现现有技术至少存在以下问题:
现有技术中,获得分布式锁的过程繁琐,且受开发语言的限制,通用性不佳。
发明内容
为了解决现有技术中的问题,本发明实施例提供了一种分布式锁实现方法和系统。所述技术方案如下:
第一方面,本发明实施例提供的一种分布式锁实现方法,包括:
客户端响应应用程序针对需求的共享数据在根目录下创建子目录的请求,根据请求生成并发送第一请求数据包;
中心机器接收第一请求数据包,判断中心机器中是否存在对应共享数据的子目录的路径信息,当中心机器中不存在路径信息时,在中心机器中创建对应共享数据的子目录的路径信息,并向客户端发送创建成功信号。
可选地,所述方法还包括:
当中心机器中已存在对应共享数据的子目录的路径信息时,向客户端发送创建失败信号。
可选地,客户端还包含用户空间文件系统,通过用户空间文件系统提供出根目录,根目录下对应共享数据的子目录的路径与中心机器中对应共享数据的子目录的路径信息相同。
可选地,所述方法还包括:
客户端响应应用程序在根目录下删除对应共享数据的子目录的请求,根据请求生成并发送第二请求数据包至中心机器;
中心机器接收第二请求数据包,并在中心机器中删除共享数据的子目录的路径信息。
可选地,所述方法还包括:
中心机器检测共享数据的子目录的路径信息存在时间是否超过预设阈值,当存在时间超过预设阈值时,删除中心机器中共享数据的子目录的路径信息。
可选地,不同的应用程序针对同一共享数据在根目录下创建子目录的路径信息相同。
可选地,中心机器中对应共享数据的子目录的路径信息保存在中心机器的内存中。
第二方面,本发明实施例提供的一种分布式锁实现系统,包括:
客户端,用于响应应用程序针对需求的共享数据在根目录下创建子目录的请求,并根据请求生成并发送第一请求数据包;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网宿科技股份有限公司,未经网宿科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710088027.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种内存优化方法和装置
- 下一篇:在终端实现按键智能化控制系统及方法