【技术实现步骤摘要】
一种基于Etcd的分布锁实现方法、系统及设备
本专利技术涉及计算机
,更具体的说是涉及一种基于Etcd的分布锁实现方法、系统及设备。
技术介绍
Etcd(一种分布式高可用键值数据库)是CoreOS团队于2013年6月发起的开源项目,该项目主要为实现一个高可用的分布式键值(key-value)数据库。Etcd核心是基于raft协议作为一致性算法,在容器调度,集群管理及服务发现等场景下有较广的应用。DLM(分布式锁管理器)是VMS操作系统提供,首次出现于1982年VMS版本3中,在2006年Linux2.6.12内核中正式集成了与VMSDLM接口几乎一致的DLM。DLM锁一般需要基于一个集群管理服务如Corosync搭配使用。DLM可以为整个集群中提供一个统一的、共享的锁资源管理机制。在每个运行DLM锁服务器节点运行一个锁管理管理进程,进程间相互通信,维护一个集群范围内的锁资源管理。DLM锁具有丰富的锁工作模式,定义了6种锁语义分别为NL、CR、CW、PR、PW和EX,用以管理共享资源。Etcd目前作为一个 ...
【技术保护点】
1.一种基于Etcd的分布锁实现方法,其特征在于,包括:/n对锁资源进行管理初始化;/n当同时有多个主机或单主机多个进程需要对Etcd已经存储的key加锁时,对所资源进行竞争加锁管理;/n当预设锁资源目录下不存在锁资源时,进行无锁资源竞争管理;/n对已经存在锁资源进行管理。/n
【技术特征摘要】
1.一种基于Etcd的分布锁实现方法,其特征在于,包括:
对锁资源进行管理初始化;
当同时有多个主机或单主机多个进程需要对Etcd已经存储的key加锁时,对所资源进行竞争加锁管理;
当预设锁资源目录下不存在锁资源时,进行无锁资源竞争管理;
对已经存在锁资源进行管理。
2.根据权利要求1所述的基于Etcd的分布锁实现方法,其特征在于,所述对锁资源进行管理初始化包括如下步骤:
S11:在Etcd创建完成后,创建以lock为名称的key和对应的类似目录,在lock的下一层级创建子key,类似目录下创建新目录以及相应的锁资源;
S12:当Etcd创建某个key时,默认在lock下一级创建一个key。
3.根据权利要求1所述的基于Etcd的分布锁实现方法,其特征在于,所述当同时有多个主机或单主机多个进程需要对Etcd已经存储的key加锁时,对所资源进行竞争加锁管理包括如下步骤:
S21:以主机名称及进程ID号做为资源竞争者标识;
S22:资源竞争者对同一个key加锁时,首先向Etcd的master节点发送请求,master节点对所有的竞争者使用Hash算法,通过取Hash后的最小值获得锁资源;
S23:通过Etcdmaster节点将host_name:pid:lock信息写入到lock目录下对应的同名key的value中;
S24:资源竞争者利用Etcd提供的compareandwrite接口,校验lock目录下对应的同名key的value内容,若和需要加锁资源一致,则加锁成功,若不一致,则加锁失败。
4.根据权利要求2所述的基于Etcd的...
【专利技术属性】
技术研发人员:方浩,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。