Time in ZooKeeper

Zxid

zookeeper状态的每次改变都会接收zxid形式的标记。这能够统计出zookeeper所有的变更。每一次变更都会有惟一的zxid。假如:zxid1小于zxid2,则zxid1比zxid2发生的时间要早。

Version numbers

node的每一次变更都会导致node的版本号递增。三种版本号分别为:version-znode的data改变次数、cversion-znode的子节点改变的次数、aversion-znode的ACL改变次数。

Ticks

在集群的zookee中,zookeeper用tick来定义事件的时间周期,比如状态变化、session超时、节点间连接超时等。session超时时间是两倍tick时间,设置的session超时时间如果小于2倍ticktime,则默认最小值为2倍tick时间。

 Real Time

zookeeper不使用实时时间和时钟时间,出了在znode的stat结构中使用时间戳。

Zookeeper Stat Structure

czxid

zxid的改变,会触发这个znode的创建。

mzxid

The zxid of the change that last modified this znode.

ctime

znode创建的时间

mtime

znode最后修改的时间

version

znode的data修改的次数

cversion

znode子节点修改的次数

aversion

znode的ACL修改的次数

ephemeralOwner

临时节点的session id,非临时节点的值为0

dataLength

znode数据长度

numChildren

znode子节点的数量

Zookeeper Session

zookeeper客户端可以使用java或c语言连接服务端,客户端通过创建handle和服务器建立session。session一旦建立,session状态为connecting时,handle就启动了;当客户端连接到zookeeper服务端时,状态变为connected。当发生不可恢复的错误时,handle状态变为closed。

为了正确连接服务端,客户端需要提供正确的connection stirng,形式为host:port(127.0.0.1:3000,127.0.0.1:3001)。客户端将任意连接一台zookeeper服务器,如果连接终端,客户端就从列表中选取重新选取一个进行连接。

猜你喜欢

转载自joandora.iteye.com/blog/2263287