入门篇
使用场景
zk文件系统,基本功能有:
- 创建永久文件
- 创建临时文件
- 创建有序文件
- 对应文件的watch机制
根据这些基本功能,可以实现的场景有:
- 分布式协调(文件+watch):各个服务之间的通信,比如当一个服务完成操作,可以通知到相关的服务。比如:kafka的消费者消费了某个消息,offset变更;分布式事务,一个服务报错其他事务回滚
- 元数据管理/集群管理(文件+watch):集群的元数据存放,集群上下线、升级主节点等。比如:kafka、dubbo注册中心等
- 分布式锁(文件+watch)
带来的问题:
- 系统复杂度增加,
- 系统可用性降低,节点宕机、集群脑裂
- 数据问题,数据丢失
基本命令
create [-s] [-e] path data acl
s:可选,表示该节点为顺序节点
e:可选,表示该节点为临时节点
path:节点路径
data:节点数据
acl:访问控制列表
ls -w 监听-节点目录结构发生变化,watch 只能被触发一次,监听类型NodeChildrenChanged
get -w 监听-节点内容发生变化,返回最新值,watch 只能被触发一次,监听类型修改NodeDataChanged,删除NodeDeleted
stat-w 监听-节点内容发生变化,不返回最新值,watch 只能被触发一次,监听类型修改NodeDataChanged,删除NodeDeleted
高级篇
基本原理
问题解决
高可用
数据一致性