安装zookeeper
下载zookeeper安装包
解压
复制conf下zoo.cfg文件
启动zookeeper sh zkServer.sh start
使用客户端
sh ZkCli.sh
zookeeper存储方式是key value形式的 创建删除查询修改节点
使用help命令
create 创建 create /orderservice 0 【path】【value】
使用ls /查看我们创建的目录
创建节点wsdl节点
create /orderservice/wsdl http:192.168.0.1?wsdl
删除必须一层层的删除
delete /orderservice/wsdl
节点特性
节点要有唯一性,类似于windows创建文件夹D盘下不存在名称相同的同级文件夹
临时节点和持久化节点
有序节点和无序节点
临时节点下不能存在子节点
集群搭建
server.id=ip:port:port
第一个端口:通信用的
第二个端口:选举leader用的
server.1=172.100.23.110:2888:3888
server.2=172.100.20.99:2888:3888
server.3=172.100.23.205:2888:3888
然后在/temp/zookeeper/下创建myid文件
章节回顾
![](https://img.haomeiwen.com/i13936084/c84f2b63e7d91bcc.png)
zoo.cfg详解
![](https://img.haomeiwen.com/i13936084/d1ab56e8e1b93457.png)
ticktime 单位毫秒心跳时间
initLimit 10个ticktime
synclimit 5个ticktime 同步时间 leader follower
dataDir 不建议放在tmp文件 存放日志文件
clientPort 对外提供的端口
![](https://img.haomeiwen.com/i13936084/efd71176f5aa89a2.png)
mZxid 更新事务id
cZxid 创建事务id
假如没有更新数据则这两个id是一样的
pZxid 子节点事务id(子节点变更后才会产生pxid的影响)
version是一个乐观锁的概念通过版本号控制
cversion(当前节点子节点版本号)
dataversion(当前节点数据内容版本号)
aclversion(权限变更版本号)
三个版本号是来控制数据的并发性的
ephemeralOwner 只有临时节点才会存在
例子
![](https://img.haomeiwen.com/i13936084/5ed2796abc3a7500.png)
ACL 设置访问权限
create/read/write/delete/admin
集群角色
![](https://img.haomeiwen.com/i13936084/d9bcf9c8a4d1498b.png)
非事务请求可以落到任意节点,如果事务请求落到非leader节点会转发到leader
数据模型
![](https://img.haomeiwen.com/i13936084/cd5b1a325f1b0b4e.png)
会话
not_connected----------------------connecting--------------connected--------close
zookeeper使用场景
配置中心(基于watcher机制动态感知配置变化)
负载均衡(知道机器状态,选举master)
分布式锁