日常维护操作
启动ZK服务:bin/zkServer.sh start
查看ZK服务状态:bin/zkServer.sh status
停止ZK服务:bin/zkServer.sh stop
重启ZK服务:bin/zkServer.sh restart
连接服务器:zkCli.sh -server 127.0.0.1:2181
查看根目录:ls /
创建 testnode节点,关联字符串"zz" create /zk/testnode "zz"
查看节点内容:get /zk/testnode
设置节点内容:set /zk/testnode abc
删除节点:delete /zk/testnode
Zookeeper日志:正常运行过程中,ZK会不断地把快照数据和事务日志输出到这两个目录,并且如果没有人为操作的话,ZK自己是不会清理这些文件的,需要管理员来清理,可以编写shell脚本定时清除几天前的备份日志。
find {dataDir}/version-2 -name "snap*" -mtime +10 | xargs rm -f
find {dataLogDir}/version-2 -name "log*" -mtime +10 | xargs rm -f
注意不要清除进程正在占用的日志文件。
高危风险操作
zookeeper主要用于服务的注册及发现,应杜绝对程序创建的节点进行设置和删除操作。
修改ZooKeeper的ACL是高危操作。修改ZooKeeper中znode的权限,可能会导致其他用户无权限访问该znode,导致系统功能异常。
Zookeeper配置文件zoo.cfg按照规范来配置,禁止随意修改。修改前要经过评审测试论证并做好备份工作。
其他注意事项
zookeeper搭建最少3个节点,必须是奇数个节点以便leader的选举。
生产环境建议每个项目部署一套zookeeper,避免多个项目共用一套zookeeper以便排除不同的项目之间相互影响。
保持Server地址列表一致,客户端使用的server地址列表必须和集群所有server的地址列表一致。
集群中每个server的zoo.cfg中配置机器列表必须一致。
独立的事务日志输出,对于每个更新操作,ZK都会在确保事务日志已经落盘后,才会返回客户端响应。因此事务日志的输出性能在很大程度上影响ZK的整体吞吐性能。强烈建议是给事务日志的输出分配一个单独的磁盘。
配置合理的JVM堆大小,确保设置一个合理的JVM堆大小。
网友评论