什么是ZK?
zk,分布式应用协调框架,Apache Hadoop的一个子项目,解决分布式应用中遇到的数据管理问题。
可以理解为存储少量数据基于内存的数据库。两大核心:文件系统存储结构 和 监听通知机制。
-
文件系统存储结构
文件目录以 / 开头。 只有全路径, 不能进入某个目录下执行
节点类型: 持久化节点
持久化顺序节点
临时节点 客户端与zk断开连接后,节点会被删除
临时顺序节点
容器节点 3. 5.3版本后新增。 当创建了子节点,删除子节点,该容器节点也会被删除。监控每60s执行一次
TTL节点 默认关闭,通过修改配置文件开启。 (设置过期时间)-
监听通知机制
监听是一次性的
目录 子节点 目录下遍历子节点 -
应用场景
分布式配置中心 分布式注册中心 分布式锁 分布式队列 集中选举 发布/订阅
-
ZK实战
- 需要java 环境
- 下载zk
- bin目录下有 zk启动以及 zk客户端连接 启动
- 创建节点
不加任何可选参数,创建的是持久化节点
create -e 创建临时节点,临时节点不能创建子节点
create -s 创建顺序节点
ls / 查看 /目录下 节点
事件监听
监听是一次性的
可以对节点 目录 以及遍历目录下全部目录
ACL权限控制
权限包括: 创建 更新 读取 删除 管理
范围验证,指定某些ip可以访问
口令访问 指定用户名密码
super模式
ZK内存数据与持久化
- 事务日志 命令追加执行
- 快照