标签:数据 znode 编号 不能 技术 class 限制 准备 data
一、为什么会有分布式锁?
在多线程环境下,由于上下文的切换,数据可能出现不一致的情况或者数据被污染,我们需要保证数据安全,所以想到了加锁。
所谓的加锁机制呢,就是当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问,直到该线程读取完,其他线程才可使用。
我们为了减少DB的压力,把库存预热到了KV,现在KV的库存是1。
正常线程进程同步的机制有哪些?
分布式锁实现主要以Zookeeper(以下简称zk)、Redis、MySQL这三种为主。
Zookeeper分布式锁
他主要的应用场景有以下几个:
ZK:他是个数据库,文件存储系统,并且有监听通知机制(观察者模式)
节点
zk的节点类型有4大类
持久化节点(zk断开节点还在)
持久化顺序编号目录节点
临时目录节点(客户端断开后节点就删除了)
临时目录编号目录节点
节点的创建:
create /test laogong // 创建永久节点
create -e /test laogong // 创建临时节点
create -s /test // 创建顺序节点
create -e -s /test // 创建临时顺序节点
临时节点 退出zk后临时节点消失。。
实现原理:
描述:
代码:
标签:数据 znode 编号 不能 技术 class 限制 准备 data
原文地址:https://www.cnblogs.com/suixing123/p/13891254.html