首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ZooKeeper筹建

2012-12-26 
ZooKeeper搭建?图:ZooKeeper层次命名空间ZooKeeper中节点和临时节点ZooKeeper的节点是通过像树一样的结构

ZooKeeper搭建

?

图:ZooKeeper层次命名空间

ZooKeeper中节点和临时节点

ZooKeeper的节点是通过像树一样的结构来进行维护的,并且每一个节点通过路径来标示以及访问。除此之外,每一个节点还拥有自身的一些信息,包括:数据、数据长度、创建时间、修改时间等等。从这样一类既含有数据,又作为路径表标示的节点的特点中,可以看出,ZooKeeper的节点既可以被看做是一个文件,又可以被看做是一个目录,它同时具有二者的特点。为了便于表达,今后我们将使用Znode来表示所讨论的ZooKeeper节点。

具体地说,Znode维护着数据、ACL(access control list,访问控制列表)、时间戳等交换版本号等数据结构,它通过对这些数据的管理来让缓存生效并且令协调更新。每当Znode中的数据更新后它所维护的版本号将增加,这非常类似于数据库中计数器时间戳的操作方式。

另外Znode还具有原子性操作的特点:命名空间中,每一个Znode的数据将被原子地读写。读操作将读取与Znode相关的所有数据,写操作将替换掉所有的数据。除此之外,每一个节点都有一个访问控制列表,这个访问控制列表规定了用户操作的权限。

ZooKeeper中同样存在临时节点。这些节点与session同时存在,当session生命周期结束,这些临时节点也将被删除。临时节点在某些场合也发挥着非常重要的作用。

?

---------------------------


在?Zookeeper?中,为了避免从众效应的发生,它是这样来实现的:每一个?follower?对?follower?集群中对应的比自己节点序号小一号的节点(也就是所有序号比自己小的节点中的序号最大的节点)设置一个?watch?。只有当follower?所设置的?watch?被触发的时候,它才进行?Leader?选举操作,一般情况下它将成为集群中的下一个Leader?。很明显,此?Leader?选举操作的速度是很快的。因为,每一次?Leader?选举几乎只涉及单个?follower?的操作。

热点排行