zookeeper-1. zookeeper简介说明


1.1 zookeeper介绍node


  zookeeper是一个高可用的分布式管理与协调框架基于ZAB算法(原子消息广播协议)的实现。算法

可以很好保证分布式环境中数据的一致性。正是基于这样的特性,使得zookeeper成为了解决分布式一致性问题的利器。服务器


·顺序一致性:从一个客户端发起的事务请求,最终会严格的按照其发起的顺序被应用到zookeeper中。session

·原子性:全部事务请求的处理结果在整个集群中全部的机器上的应用状况是一致的。也就是说要么整个集群全部的机器都成功应用了某一事务,要么没有应用。数据结构

·单一视图:不管客户端链接的是哪个zookeeper服务器,其看到的服务器端数据模型都是一致的。框架

·可靠性:一旦服务器成功的应用了一个事务,并完成对客户端的响应,那么该事务引发的服务器状态将会被一致保留下来。除非有另外一个事务对其修改。分布式

·实时性:一般所说的实时性是指一旦事务被成功应用,那么客户端能马上从服务器上获取更新后的新数据,zookeeper仅仅能保证在一段时间内,客户端最终必定能从服务器端读取最新的数据状态。ide




1.2 zookeeper设计目标性能


1)简单的数据结构:zookeeper就是以简单的树形结构来进行相互协调的。spa

2)能够构建集群:通常zookeeper集群一般是由一组机器构成的,通常3-5台机器就能够组成一个zookeeper集群了。只要集群中超过半数以上的机器可以正常工做,那么整个集群就可以正常对外提供服务了。

3)顺序访问:对于每个客户端的每个请求,zookeeper都会分配一个全局惟一的递增编号,这个编号反应了全部事务操做的前后顺序,应用程序可使用zookeeper的这个特性来实现更高层次的同步。

4)高性能:因为zookeeper将所有数据存储在内存中,并直接服务与全部的非事务请求,所以尤为在读操做为主的场景下性能很是突出。



1.3 zookeeper的结构


  zookeeper会维护一个具备层次关系的数据结构,它很是相似于一个标准的文件系统

wKiom1iyKqmTC-4nAAG4ngR_V6I215.png-wh_50



1.4 zookeeper数据模型


1)每个子目录项如NameService都被称做为znode,这个znode是被它所在的路径惟一标识的。如Server1这个znode的标识为 /NameService/Server1。

2)znode能够有子节点目录。而且每一个znode能够存储数据、数据是有版本的。每一个znode中存储的数据能够有多个版本,也就是一个访问路径能够存储多分数据。

3)znode能够是临时节点,一旦建立这个znode的客户端与服务器失去联系,这个znode也将删除,zookeeper的客户端和服务器通讯采用长链接方式,经过心跳来保持链接,这个链接状态称session,若是znode是临时节点,这个session失效,znode也就删除了。

4)znode能够被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化能够通知设置监控的客户端,这个是zookeeper的核心特性。



1.5 zookeeper组成


1)Leader:负责客户端的write请求;

2)Follower:负责客户端的read请求,参与leader选举等;

3)Observer:特殊的Follower,其能够接受客户端read请求,但不参与选举;扩容系统支撑能力,提升了读取速度。由于他不能接受任何同步的写入请求,只负责与leader同步数据;

相关文章
相关标签/搜索