课程地址:09_尚硅谷_zk_集群_安装_哔哩哔哩_bilibili
学员笔记:01-Zookeeper入门 · 语雀 ★★★★★
======================课程笔记======================
视频9中说,文件名称必须是myid
集群启动停止的shell脚本(用于集群台数较多时很方便)。
监听器命令行演示:
客户端API:
注意:connectString字符串参数中间“逗号”的前后不能有空格!
写数据原理:
第4章-服务器动态上下线监听案例
服务上线:只需要在ZooKeeper集群中创建节点就可以了,就表示告诉zk集群,它可以对外提供服务了。
上面图片分析:图片中的 “服务器1-3”、“客户端1-3” 对于ZooKeeper集群来说,都是客户端。但他们的区别在于, “服务器1-3”是执行create创建节点的操作,“客户端1-3” 是执行watch监听(get -w)操作。
要求服务上线/下线能自动感知,所以要创建临时节点哦(带参数 -e),同时还需记住每个节点上线的顺序,所以还需要加 -s 参数带上序列号。
代码实现:
按照上面图片,代码分三大步来写。
第一大步:启动zk集群,在zk中创建根目录永久节点servers,如下:
第二大步:服务器在zk集群的注册(通常可以将代码中连接和注册等进行封装到一个类如DistributeServer中):
第三大步:客户端在zk集群上的监听操作:
最后,进行测试:
(1)先测试客户端代码:即先不启动服务器,在集群启动的前提下,启动客户端代码与zk建立连接,然后通过命令行的方式创建带序列号的临时节点,实时观察idea控制台的输出信息变化,测试结果为上线没问题,如下图所示。
下线,即删除节点经测试也OK的,如下图。
(2)测试服务器端代码:
首先,更正一下服务器端代码:
测试OK的。
第5章-ZooKeeper分布式锁案例
1. 原生ZooKeeper实现分布式锁案例
待办项:回看视频,自己实战!(说明:生产环境下,代码有问题哦)
企业中,不会自己去手写,因为考虑的问题是比较多的,都是采用的成熟的框架,如Curator框架。练习原生代码的方式,有助于理解底层原理。
2. Curator框架实现分布式锁案例(重点)★★★★★
Curator代码实现:
第6章-企业面试真题(面试重点)
=====================下面为ZooKeeper高阶课程【源码层面】==========
目录:
ZooKeeper数据一致性如何保证?答:Paxos算法。