概述
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。
结构
zookeeper=文件系统+通知机制
服务器在zookeeper中注册,客户端通过被zookeeper通知,知道服务器的状态。
特点
数据结构
应用场景
1在分布式环境下,经常需要对应用服务器统一命名
2 统一配置管理,(1)分布式环境下,配置文件同步非常常见。对配置文件修改后,能够快速同步到各个节点上。(2)可向配置信息写入zookeeper的一个Znode.各个客户端服务器监听这个Znode.一旦zode数据改变,zookeeper将通知所有服务器
3统一集群管理,
4 服务器动态上下线。
5 软负载均衡
Zookeeper的leader选举机制
leader 和follwer lead是哪台机器呢? 每个机器都会先认为自己是leader,如果一共有5台机器,id号依次从一开始,那么leader就是第三个,如果有6个,那就是第4个,7个就是第四个,就是半数以上最近的id是leader
节点类型
持久和短暂。
(1)持久就是,客户端与服务器断开后,节点不删除。 会给zookeeper上的该节点进行从1开始的编号。
集群zookeeper的配置解读
server.A=B:C:D
A指的是第几号服务器,B是IP号,C是服务器与leader传输信息的端口号,D是是选举的端口号
客户端命令行操作
create /sanguo “shuguo”
create /sanguo “weiguo”
create -e 临时节点 create -s带序号的节点
ls /sanguo watch 监控节点
get /sanguo
delete /sanguo/banzhang
rmr /sanguo 递归删除
Stat结构体
1 czxid-创建节点的事务 zxid
每次修改Zookeeper状态都会收到一个zxid形式的时间戳,也就是zookeeper事务ID
监听器原理
写数据流程
面试题
1常用命令 create ls get delete set
2zookeeper部署方式,集群角色,集群最少需要几台
单机 集群 leadermaster 3
3 监听原理
4 选举机制
5 如何写的
最后这个大佬写的好啊
https://www.cnblogs.com/ultranms/p/9585191.html