3-1 zk数据模型介绍
zookeeper的基本数据模型 一
- 是一个树形结构,类似于前端开发中的tree.js组件
zookeeper的基本数据模型 二
zookeeper的基本数据模型介绍 三
- zk的数据模型也可以理解为linux/unix的文件目录:/usr/local/...
- 每一个节点都称之为znode,它可以有子节点也可以有数据
子节点可以理解为 父目录下的 子目录
- 每个节点分为临时节点和永久节点,临时节点在客户端断开后消失
临时节点就是 在session失效之后,临时节点的数据和节点全部都会丢失;而永久节点,session断开后,数据也会存在
zookeeper的基本数据模型介绍 四
- 每个zk节点都有各自的版本号,可以通过命令行来显示节点的信息
- 每当节点数据发生变化,那么该节点的版本号会累加(乐观锁)
可以理解为 mysql中的 乐观锁
- 删除/修改 过时的节点,版本号不匹配会报错
zookeeper的基本数据模型介绍 五
- 每个zk节点存储的数据不宜过大,几K即可
- 节点可以设置权限acl,可以通过权限来限制用户的访问
3-2 zk客户端连接关闭服务端,查看znode
zookeeper数据模型基本操作
- 客户端连接
- 查看znode结构
- 关闭客户端连接
客户端连接
- 进入zookeeper 的bin目录
cd /usr/local/zookeeper/bin
- 打开zookeeper
./zkServer.sh start
- 开启客户端
./zkCli.sh
回车,如下图代办连上了
help 查看都有什么命令
- ls:查看 路径下,都有什么节点
如何退出客户点
ctrl+c
zookeeper的作用体现
Adblocker
3-3 zookeeper的作用体现
zk的作用体现 一
- master节点选举,主节点挂了之后,从节点就会接手工作,并且保证这个节点是唯一的,这也是所谓的首脑模式,从而保证我们的集群是高可用的
zk的作用体现 二
- 统一配置文件管理,既只需要部署一台服务器,则可以把相同的配置文件同步更新到其他所有服务器,此操作在云计算中用的特别多(假设修改了redis的统一配置)
zk的作用体现 三
- 发布与订阅,类似于消息队列MQ(amq,rmq),dubbo发布者把数据存在znode上,订阅者会读取这个数据
zk的作用体现 四
- 提供分布式锁,分布式环境中不同进程之间争夺资源,类似于多线程的锁
zk的作用体现 五
- 集群管理,集群中保证数据的强一致性