Zookeeper的配置文件及命令
zookeeper的三种端口号:
2181:客户端连接Zookeeper集群使用的监听端口号
3888:选举leader使用
2888:集群内机器通讯使用(Leader和Follower之间数据同步使用的端口号,Leader监听此端口)
Zookeeper单机模式配置文件
路径:/conf/zoo.cfg
clientPort=2181 dataDir=/data dataLogDir=/datalog tickTime=2000 clientPort:这个端口就是客户但连接Zookeeper服务器的端口,Zookeeper会监听这个端口,接收客户端的访问请求 dataDir:保存数据的目录 dataLogDir:保存日志的目录 tickTime:这个时间事作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔tickTime时间就会发送一个心跳
zookeeper集群模式配置文件
路径:/conf/zoo.cfg
clientPort=2181 dataDir=/data dataLogDir=/datalog tickTime=2000 initLimit=5 synclimit=2 autopurge.snapRetainCount=3 autopurge.purgeInterval=0 maxClientCnxns=60 server.1=192.168.0.1:2888:3888 server.2=192.168.0.2:2888:3888 server.3=192.168.0.3:2888:3888
initLimit:配置zookeeper接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过initLimit(默认为10)个心跳的时间(也就是tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是5*2000=10秒 syncLimit:配置Leader与Follower之间发送信息,请求与应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是2*2000=4秒
在/bin目录下有个脚本:zkCleanup.sh可以手动清理快照和事务日志; 定时清理(zookeeper从3.4.0开始提供了自动清理快照和事务日志的功能)以下两个参数配合使用: autopurge.snapRetainCount:指定了需要保留的文件数目。默认事保留3个。 autopurge.purgeInterval:指定了清理频率,单位是小时,需要填写一个1或者更大的数字,默认是0,表示不开启自己清理功能。 maxClientCnxns:限制连接到zookeeper的客户端的数量,限制并发连接的数量,它通过IP来区分不同的客户端。此配置选项可以用来组织某些类别的Dos攻击。将它设置为0或者忽略而不进行设置将会取消对并发连接的限制。 server.A=B:C:D:其中A是一个数字,表示这个是第几号服务器。B是这个服务器的IP地址/在docker中可以使用计算机名。C表示的是这个服务器与集群中的Leader服务器交换i西南西的端口(2888);D表示的是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口(3888).如果时伪集群的配置方式,由于B都是一样,所以不同的Zookeeper实力通信端口号不能一样,所以要给它们分配不同的端口号。 server.1=192.168.0.1:2888:3888 server.2=192.168.0.2:2888:3888 server.3=192.168.0.3:2888:3888 注意:server.A中的A时在dataDir配置的目录中创建一个名为myid的文里的值(如:1)
zookeeper常用命令:
zkServer:
./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status
zkClient:
客户端连接服务器: ./zkCli.sh -server localhost:2181
连接后创建节点(访问和创建都是目录形式):create /test "Hello Zookeeper"
获得znode里变得data: get /test
删掉:delete /test
ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令
- 1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader
- 2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。
- 3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。
- 4. echo kill | nc 127.0.0.1 2181 ,关掉server
- 5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。
- 6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
- 7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。
- 8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。
- 9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。
- 10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
- 11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。