1:定义

官网:zookeeper.apache.org

  • 相当于是一个数据库
  • 是一个分布式协调框架,实现HA
  • 是一个分布式锁的管理框架,实现秒杀

2:提供的功能

  • 分布式协调
  • 分布式锁
  • 数据同步(端口:2888),选举机制(投票,端口:3888)
    主要的功能在于存储数据和监听

3:工作机制

整体运行机制

zookeeper怎么删文件 zookeeper数据存储在哪里_数据

存储数据:

Zookeeper的数据模型是树结构,在内存数据库中,存储了整棵树的内容,包括所有的节点路径、节点数据、ACL信息,Zookeeper会定时将这个数据存储到磁盘上。

1、DataTree

DataTree是内存数据存储的核心,是一个树结构,代表了内存中一份完整的数据。DataTree不包含任何与网络、客户端连接及请求处理相关的业务逻辑,是一个独立的组件。

2、DataNode

DataNode是数据存储的最小单元,其内部除了保存了结点的数据内容、ACL列表、节点状态之外,还记录了父节点的引用和子节点列表两个属性,其也提供了对子节点列表进行操作的接口。

3、ZKDatabase

Zookeeper的内存数据库,管理Zookeeper的所有会话、DataTree存储和事务日志。ZKDatabase会定时向磁盘dump快照数据,同时在Zookeeper启动时,会通过磁盘的事务日志和快照文件恢复成一个完整的内存数据库。

监听节点信息

zookeeper怎么删文件 zookeeper数据存储在哪里_内存数据库_02

如果某台机器节点宕机,通过监听功能向zookeeper会发送一个下线通知,然后重新通过回调process方法,重新获取服务器列表,并在此注册监听。

4:应用场景

  • 集群统一的配置管理
  • 集群同一命名服务
  • 集群统一管理
  • 服务器的动态上下线感知
  • 负载均衡,但并不是特别擅长

5:启动命令

在主节点,从节点任意目录下输入:zkServer.sh start

然后在各个节点查看状态,主节点为leader,从节点为follower,命令:zkServer.sh status

6:选举机制

节点数量一般设置为奇数

zookeeper怎么删文件 zookeeper数据存储在哪里_内存数据库_03

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