Zookeeper基础内容

1:定义

官网:zookeeper.apache.org

  • 相当于是一个数据库
  • 是一个分布式协调框架,实现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:客户端启动命令

启动客户端:

zkCli.sh

查看帮助:

​ 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章