ZooKeeper 节点计数器?

ZooKeeper node counter?

我有一个只有 2 个节点的 ZooKeeper 集群,每个 zoo.conf 有以下

# Servers
server.1=10.138.0.8:2888:3888
server.2=10.138.0.9:2888:3888

两个配置中都存在相同的两行

[root@zk1-prod supervisor.d]# echo mntr | nc  10.138.0.8 2181
zk_version      3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
zk_avg_latency  0
zk_max_latency  0
zk_min_latency  0
zk_packets_received     5
zk_packets_sent 4
zk_num_alive_connections        1
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count  4
zk_watch_count  0
zk_ephemerals_count     0
zk_approximate_data_size        27
zk_open_file_descriptor_count   28
zk_max_file_descriptor_count    4096

[root@zk1-prod supervisor.d]# echo mntr | nc  10.138.0.9 2181
zk_version      3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
zk_avg_latency  0
zk_max_latency  0
zk_min_latency  0
zk_packets_received     3
zk_packets_sent 2
zk_num_alive_connections        1
zk_outstanding_requests 0
zk_server_state leader
zk_znode_count  4
zk_watch_count  0
zk_ephemerals_count     0
zk_approximate_data_size        27
zk_open_file_descriptor_count   29
zk_max_file_descriptor_count    4096
zk_followers    1
zk_synced_followers     1
zk_pending_syncs        0

所以为什么 zk_znode_count == 4 ?

Znode 不是 Zookeeper 服务器。

来自 Hadoop 权威指南:

Zookeeper doesn’t have files and directories, but a unified concept of a node, called a znode, which acts both as a container of data (like a file) and a container of other znodes (like a directory).

zk_znode_count 是指 Zookeeper 服务器中可用的 znode 数。在您的 ZK 集成中,每个服务器都有四个 znode。