这篇文章是旨在为那些想要利用Zookeeper协调服务能力进行分布式应用创建的开发者的入门指导,包括一些理论性和实践性的内容。
文章的前四部分系统的介绍了zookeeper的相关概念,对于理解zookeeper的工作机制及使用都有很大帮助。
zookeeper本身是一种层次性的命名空间结构,非常类似于分布式文件系统,不同之处在于zookeeper的每个节点都可以存储节点数据及拥有子节点,既是文件又是文件夹。每个节点的路径都是用斜线分割,唯一,绝对的。没有相对路径:
zookeeper中的节点以ZNode的形式存在,ZNode结构存储数据及确认历史变化版本号并包含时间戳。zookeeper使用版本号及时间戳来处理缓存时效及协调更新。版本号会随着每次节点数据的改变而递增,客户端查询节点数据,同时会返回数据的版本号信息,当需要执行删除或更新操作时,客户端必须提供相应的需要删除的数据版本号,如果不一致,则操作不执行。
附注:在分布式应用机制中,一个node可以代表一个host地址,一台服务器,集合中的一员,一个客户端进程等,zookeeper中znodes代表数据节点,servers对应组成zookeeper服务的机器,client代表使用zookeeper服务的任何客户端进程,quorum peers代表组成集合的服务器。
znodes是编程主要涉及的对象,主要特性如下: