Zookeeper简介
Zookeeper是个高性能的分布式协调中间件,分布式协调中间件的作用类似于多线程环境中通过并发工具包来协调线程的访问控制,主要解决分布式环境中各个服务进程的访问控制问题,比如访问顺序控制。所以Zookeeper不是注册中心,只是其特性可以实现注册中心。
Zookeeper的数据结构
Zookeeper的数据模型类似分布式文件系统,是种层次化的属性结构,如图1所示。不同的是Zookeeper的数据是结构化存储,并没在物理上体现出文件和目录。
Zookeeper树中的每个节点称为Znode,Znode维护一个state状态信息,包含数据变化的时间和版本等。每个Znode可设置一个value值,Zookeeper不用于通用的数据库或大容量的对象存储,它只管理和协调有关的数据,所以value的数据大小不建议设置太大,较大的数据会带来更大的网络开销。
每个Znode都允许读和写,读表示获取Znode上的数据,写表示修改Znode上的数据。另外,Znode的创建规则和文件系统中文件的创建规则类似,必须按层级创建。举个例子:创建/node/nodeA/nodeA-a,那必须先创建/node/nodeA这两个层级节点。
Zookeeper的特性
Znode创建时需指定节点类型,节点类型包括:
-
持久化节点,节点数据会持久化到