1 zk开源客户端curator介绍: 2 常用变量: 3 权限:ZooDefs.Perms.All 4 节点类型:CreateMode.PERSISTENT 5 6 1. curator简介 7 curator是netflix公司开源的一个zk客户端; 8 原生zkAPI的不足: 9 -连接对象异步创建,需要开发人员自行编码等待 10 -连接没有自动重连超时机制 11 -watcher一次注册生效一次 12 -不支持递归创建树形节点 13 curator特点: 14 -解决session会话超时重连 15 -watcher反复注册 16 -简化开发api 17 -遵循Fluent风格的API 18 -提供了分布式锁服务,共享计数器,缓存机制等 19 2. watcherAPI 20 curator提供了两种watcher(cache)来监听节点的变化 21 -Nodecache:只监听某一特定的节点,监听节点的新增和修改 22 -PathChildrenCache:监听一个znode的子节点,当一个子节点增加,更新,删除时,Path Cache会改变它的状态,会包含最新的子节点,以及子节点的数据和状态。 23 24 3. 分布式锁 25 -InterProcessMutex:分布式可重入排他锁 26 -InterProcessReadWriteLock:分布式读写锁 27 28 4. 常用命令: 29 zk支持某些特定的四字命令与其交互。它们大多是查询命令,用来获取zk服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向zk提交相应的命令。 30 -conf:输出相关服务配置的详尽信息。端口号,zk数据及日志配置路径,最大连接数,session超时时间,serverid等 31 -cons:列出所有连接到这台服务器的客户端连接/会话的详尽信息。包括"接收/发送"的包数量,sessionID,操作延迟,最后的操作执行等信息。 32 -crst:重置当前这台服务器的所有连接/会话的统计信息 33 -dump:列出未经处理的会话和临时节点 34 -envi:输出关于服务器的环境详尽信息 35 -ruok:测试服务是否处于正确运行状态.如果正常返回imok,否则返回空 36 -stat:输出服务器的详尽信息:接收/发送包数量,连接数,模式(leader/follower),节点总数,延迟。 37 -srst:重置server状态 38 -wchs:列出服务器watchers的简介信息:连接总数,watching节点总数和watches总数 39 -wchc:通过session分组,列出watch的所有节点,它的输出是一个watch相关的会话的节点列表 40 -wchp:通过路径分组,列出所有的watch的session id信息 41 -mntr:列出集群的健康状态。包括"接收/发送"的包数量,操作延迟,当前服务模式(leader/follower),节点总数,watcher总数,临时节点总数 42 eg:使用nc命令查看服务器配置信息: 43 echo conf | nc 172.18.19.143 2181 44 45 -conf命令: 46 echo conf | nc 172.18.19.143 2181; 47 clientPort:客户端端口号 48 dataDir:数据快照文件目录,默认情况下100000次事务操作生成一次快照; 49 dataLogDir:事务日志文件目录,生产环境中放在独立的磁盘中; 50 tickTime:服务器之间或客户端与服务器之间维持心跳的时间间隔(以毫秒为单位); 51 maxClientCnxns:最大连接数; 52 minSessionTimeout:最小session超时,默认minSessionTimeout=tickTime*2; 53 maxSessionTimeout:最大session超时,默认maxSessionTimeout=tickTime*20; 54 serverId:服务器编号; 55 initLimit:集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数; 56 syncLimit:集群中的follower服务器(F)与leader服务器(L)之间请求和应答之间能容忍的最多心跳数; 57 electionAlg: 58 0:基于UDP的LeaderElection, 59 1:基于UDP的FastLeaderElection, 60 2:基于UDP和认证的FastLeaderElection, 61 3:基于TCP的FastLeaderElection 62 在3.4.10版本中,默认值为3,另外三种算法已经被弃用。 63 electionPort:选举端口; 64 quorumPort:数据通信端口; 65 peerType:是否为观察者,1为观察者 66 -cons命令: 67 ip:ip地址; 68 port:端口号; 69 queued:等待被处理的请求数,请求缓存在队列中; 70 received:收到的包数; 71 sent:发送的包数; 72 sid:会话id; 73 lop:最后的操作GETD-读取数据,DELE-删除数据,CREA-创建数据; 74 est:连接的时间戳; 75 to:超时时间; 76 lcxid:当前会话的操作id; 77 lzxid:最大事务id; 78 lresp:最后响应时间戳; 79 llat:最后/最新 延时; 80 minlat:最小延时; 81 maxlat:最大延时; 82 avglat:平均延时; 83 -stat命令: 84 Zookeeper version:版本; 85 latency min/avg/max:延时; 86 received:收包; 87 sent:发包; 88 connections:连接数; 89 outstanding:堆积数; 90 zxid:最大事务id; 91 mode:服务器角色; 92 node count:节点数; 93 -wchc命令: 94 直接使用会有问题:wchc is not executed because it is not in the whitelist. 95 解决办法:修改zkServer.sh: 96 在下面添加如下信息: 97 ZOOMAIN="-Dzookeeper.41w.commands.whitelist=* ${ZOOMAIN}" 98 -mntr命令: 99 此命令与stat命令相似,不多显示的信息更加详细. 100 zk_version:版本; 101 zk_avg_latency:平均延迟; 102 zk_max_latency:最大延迟; 103 zk_min_latency:最小延迟; 104 zk_packetzk_packets_sents_received:收包数; 105 zk_packets_sent:发包数; 106 zk_num_alive_connections:连接数; 107 zk_outstanding_requests:堆积请求数; 108 zk_server_state:leader/follower状态; 109 zk_znode_count:znode数量; 110 zk_watch_count:watch数量; 111 zk_ephemerals_count:临时节点(znode)数量; 112 zk_approximate_data_size:数据大小; 113 zk_open_file_descriptor_count:打开的文件描述符数量; 114 zk_max_file_descriptor_count:最大文件描述符数量;
原文:https://www.cnblogs.com/kongieg/p/13367381.html