一 session会话
一个连接一个会话 由zk配置会话ID
客户端每隔一段时间 发送心跳 保持会话有效:tickettime
超过会话时间没有心跳则判定死亡 2tickettime
会话请求按照FIFO进行
二 数据模型
类似linxux文件系统由'/'为根
区别:节点可包括之前关联的节点以及子数据
znode
名称唯一命名规范
节点类型:
持久 create /a
顺序 create -s /a
临时 create -e /a
临时顺序 create -e -s /a
数据量上限 1m
znode元数据
xid事务ID
zookeeper的时间
watch监听机制
可以在znodes设置监听实时监控数据的动态变化
两类watch
data watch
child watch
触发watch情况
create event
delete event
change event
child event
watch重要特性
一次性触发:触发则删除 若要持久性变化 则要设置持续监听
有序性:客户端先得到watch 之后再知道变化的结果
注意事项
zookeeper应用场景
订阅发布(配置中心)
命名服务
master选举
分布式队列
分布式锁
zookeeper集群
可靠的zookeeper服务
只要大多数服务准备好,就可以使用这个服务
容错集群至少三个或以上 建议奇数个
建议每个服务单独运行机器上
参数设置
initLimit
指的是follow服务器与leader服务器完成初始化同步连接时能容忍最大心跳数
syncLimt
指的是follow与leader连接请求应答能容忍的最大心跳时间
server.id
id在datadir下创建的myid文件来赋予每个服务器id