

Zookeeper 笔记

Zookeeper 入门
概述
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。
(Zookeeper 是一个为其他分布式框架提供服务的分布式框架)
工作机制
Zookeeper从设计模式角度来理解:是一个基于观察者模式
设计的分布式服务管理框架,它负责存储和管理大家都关心的数据
,然后接受观察者的注册
,一旦
这些数据
的状态发生变化
,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者
做出相应的反应。
Zookeeper=文件系统+通知机制
特点
1) Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
2) 集群中只要有半数
以上节点存活,Zookeeper集群就能正常服务。所以 Zookeeper 适合安装奇数
台服务器。
3) 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
4) 更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
5) 数据更新原子性,一次数据更新要么成功,要么失败。
数据结构
ZooKeeper 数据模型的结构与 Unix 文件系统很类似
,整体
上可以看作是一棵树
,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB
的数据,每个 ZNode 都可以通过其路径唯一标识
。
应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
面试重点
选举机制
半数机制,超过半数的投票通过,即通过。
(1)第一次启动选举规则:
投票过半数时,服务器 id 大的胜出。
即每台机器会先投给自己,不行再投给 id 大的,依此类推,直到某台机器获得超过半数的票,它就成为Leader。所以一般是排在中间服务器当 Leader。
(2)第二次启动选举规则:
① EPOCH 大的直接胜出
② EPOCH 相同,事务 id 大的胜出
③ 事务 id 相同,服务器 id 大的胜出
监听器(客户端)原理

生产集群安装多少zk合适?
安装奇数台。
生产经验:
- 10 台服务器:3 台 zk;
- 20 台服务器:5 台 zk;
- 100 台服务器:11 台 zk;
- 200 台服务器:11 台 zk
服务器台数多:好处,提高可靠性;坏处:提高通信延时
常用命令
ls、get、create、delete
随堂笔记
https://github.com/kuangyang828/share_doc/blob/master/Zookeeper随堂笔记.pdf
课件
https://github.com/kuangyang828/share_doc/blob/master/08_尚硅谷技术之ZookeeperV3.3.pdf
源码分析
https://github.com/kuangyang828/share_doc/blob/master/08_尚硅谷技术之Zookeeper(源码解析)V3.3.pdf
- 本文作者: 况杨
- 本文链接: https://kuangyang828.github.io/zookeeper-bi-ji/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
感谢您的支持,我会继续努力的!


扫码打赏,你说多少就多少
打开微信扫一扫,即可进行扫码打赏哦