zk 实现分布式锁 笔记(待整理)

zookper 核心概念:
文件系统的数据结构,事件监听者。

持久化节点,临时节点,持久化节点,临时节点,
文件系统中,配置文件,连接zookper,

zooker命令以及使用
默认情况下使用
create /test "xxxx"
创建, get 
create /test/subtest/ "xxxx" 看一下数据是否成功,
set /test/subtest/subtext,  持久化节点, 看一下是否还存在,
持久化的节点的CRUD。


临时节点:
create  -e /test2/ "test"
ls
默认是有已经时间的。

持久化节点下创建分布式锁:
create -s /pssql "xxxx"
操作都是一致的,

2)事件监听机制:
set /test/ "aaa"
单个节点:
ls 子目录中变化NOdechildreChanged :

3)使用场景:分布式应用:
单体到配置文件的演变: 获取最新配置。
Order 服务和User 服务,
zookper 可以作为胡册中心,集群环境, 端口号,注册下去,创建一个目录,写进去自己的信息,
user服务直接获取下去的数据的解析,直接完成,客户端的负载均衡,也就可以了。同样的方式,
注册到UserServr 上去,同样完成客户端的负载均衡。加进去OderService 中,同样的我们的网卡坏了,
客户端在注册是个临时节点,对应的服务不用调用了。客户端通过server 的心跳。

经典的应用:
分布式锁:
一个线程创建同样的,使用reids 的,如何使用zk 完成分布式锁。
zookper 完成分布式锁,实现,加锁的人,1000个加锁,其他人加锁会失败,监听并等待,在释放的时候,
并监听,zk 通知999个人的,羊群效应。


加锁的时候,创建一个临时节点,临时顺序节点,创建完成后,立马完成判断,当前是最小的,获取锁,
最小的获取的002能获取完成后,zookper 003 挂到了,004 同样的会获取最小的说值。


leader  集群说明:
1.搭建集群环境。
2.修改配置文件:
3。设计表结构, Order,Produect 表,产品,其中的一个核心的Service 中增加了一个耗时处理,
减少库存,这便是我们的OrderService 中,理解,使用Jmeter 进行压测,前端使用我们的,JVM有效,
启动2个进程,高并发的使用Jmeter 进行压测,使用分布式分区压测,启动我们的服务,看一下运行号的tomcat,
添加一个Jmeter  10s 之内访问,结果树结构,请求配置一下,前端请求之后,
数据库中出现超买。
因此引入了分布式锁,

首先确认版本,引入zk 的版本,提供了一个非常方面的demo,锁的初始化,
引入分布式锁,实现,看一下我们的数据,多少个东西,

加锁原理:
源码分析,临时节点完成之后,节点完成最小的锁,最小的锁,完成怎么来判断呢?最小呢,看一下
构造一个获取如果没有时间的限制,加锁。
zoookper  协议。


 


 

发布了640 篇原创文章 · 获赞 12 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/xiamaocheng/article/details/104850122