dubbo通过注册中心在分布式环境中实现服务的注册与发现,而注册中心通常采用Zookeper,研究注册中心性格源码离不开Zookeper,所以学习了Zookeper的基本概念和相关API操作。
Zookeper的相关概念
session
客户端和服务端采用长连接TCP协议,服务端在为客户端创建session会分配一个唯一的sessionid,在session timeout时间内,客户端可以向服务端发送请求以及接收watcher事件通知。
数据结构
Zookeper将所有数据存储在内存中,数据模型是一棵树,znode tree ,由斜杆进行分割的路径,就是一个znode,如foo/path1
znode
znode将会保存数据内容以及相关属性信息。在znode中使用stat数据结构保存相关的属性信息。stat属性中有三种版本信息,分别是
version:当前节点版本信息,
cversion:当前节点子节点版本信息,
aversion:当前节点的ACL版本。