Zookeeper ZooKeeper下载与安装(二)
ZooKeeper数据模型与层次命名空间
树状结构
-
通过/分隔开路径名
-
每个路径代表一个节点Znode(zookeeper node)
Znode
每个Znode有自身信息,数据、长度、创建时间、修改时间。
Znode维护数据、ACL(access control list,访问控制列表)、时间戳等交换版本号等数据结构,它通过对这些数据的管理来让缓存生效并且令协调更新。每当Znode中的数据更新后版本号将增加。
-
读写操作
读写数据原子性,读就读取所有数据,写入时完全覆盖。Znode的ACL存储用户操作权限。
-
临时节点
和session相关,session结束,节点删除。
安装
ZooKeeper配置参数
高级配置
-
dataLogDir
-
maxClientCnxns
限制客户端连接数,默认0,表示不限制
-
minSessionTimeout
会话超时最小值,默认是tickTime的2倍,-1不设置
-
maxSessionTimeout
会话超时大值,默认是tickTime的20倍,-1不设置
集群配置
-
tickime:心跳周期
-
dataDir:数据目录
-
myid:文件位于dataDir属性指定目录下,里面只有一个数字n,不能重复
-
initLimit:follow到leader的初始连接超时,指定的是tickTime的倍数
-
syncLimit:leader和follow之间消息响应的时间限制,超时后,follow被丢弃
-
server.n=host:port1:port2
数字n必须是myid中的值
port1:leader端口,作为leader时,供follower连接的端口
port2:选举端口,选举leader时供其他follower连接的端口
集群失效的条件:半数服务器挂掉
zk处理集群故障的算法是2n+1,最好在奇数机器数部署
ZooKeeper启动
-
启动zkServer
//默认配置启动
$>zkServer.sh start//指定配置启动
$>zkServer.sh start zoo1.cfg
$>zkServer.sh stop
$>zkServer.sh status
$>zkServer.sh restart