1:定义
- 相当于是一个数据库
- 是一个分布式协调框架,实现HA
- 是一个分布式锁的管理框架,实现秒杀
2:提供的功能
- 分布式协调
- 分布式锁
- 数据同步(端口:2888),选举机制(投票,端口:3888)
主要的功能在于存储数据和监听
3:工作机制
整体运行机制
存储数据:
Zookeeper的数据模型是树结构,在内存数据库中,存储了整棵树的内容,包括所有的节点路径、节点数据、ACL信息,Zookeeper会定时将这个数据存储到磁盘上。
1、DataTree
DataTree是内存数据存储的核心,是一个树结构,代表了内存中一份完整的数据。DataTree不包含任何与网络、客户端连接及请求处理相关的业务逻辑,是一个独立的组件。
2、DataNode
DataNode是数据存储的最小单元,其内部除了保存了结点的数据内容、ACL列表、节点状态之外,还记录了父节点的引用和子节点列表两个属性,其也提供了对子节点列表进行操作的接口。
3、ZKDatabase
Zookeeper的内存数据库,管理Zookeeper的所有会话、DataTree存储和事务日志。ZKDatabase会定时向磁盘dump快照数据,同时在Zookeeper启动时,会通过磁盘的事务日志和快照文件恢复成一个完整的内存数据库。
监听节点信息
如果某台机器节点宕机,通过监听功能向zookeeper会发送一个下线通知,然后重新通过回调process方法,重新获取服务器列表,并在此注册监听。
4:应用场景
- 集群统一的配置管理
- 集群同一命名服务
- 集群统一管理
- 服务器的动态上下线感知
- 负载均衡,但并不是特别擅长
5:启动命令
在主节点,从节点任意目录下输入:zkServer.sh start
然后在各个节点查看状态,主节点为leader,从节点为follower,命令:zkServer.sh status
6:选举机制
节点数量一般设置为奇数
7:客户端启动命令
启动客户端:
查看帮助:
help
查看当前Znode所包含的内容
ls /
创建节点
create /hunter18
创建短暂Znode
create -e /itstar hunter
创建呆序号znode
create -s /bigdata hunter
查看此节点的详细信息
ls2 /
获得节点值监听
ls /hunter watch
监听路径
ls / watch
修改Znode数据
set /hunter iiiii
删除节点
delete /henter