首页技术文章正文

云计算大数据培训之Hadoop组件:zookeeper(2)

更新时间:2017-09-01 来源:黑马程序员云计算大数据培训学院 浏览量:

2-1体系架构 

ZooKeeper的体系架构如下图所示:


客户端可以连接到每个Server,每个Server的数据完全相同,每个Follower都和Leader有连接,接受Leader的数据更新操作,Server记录事务日志和快照到持久存储;过半数Server可用,整体服务就可用。Leader只有一个,宕机后会重新选出一个Leader。


2-2 ZooKeeper基本特性

强一致性:Client不论连接到哪个Server,展示给它的都是同一个视图,这是ZooKeeper最重要的功能。


可靠性:具有简单、健壮、良好的性能,如果消息Message被一台服务器接受,那么它将被所有的服务器接受。


实时性:ZooKeeper保证客户端在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。考虑到网络延时等原因,在需要最新数据时,应该在读数据之前调用sync实现。


等待无关(wait-free):慢的或者失效的Client不得干预快速的Client的请求,使得每个Client都能有效的等待。


原子性:更新只能成功或者失败,没有中间状态。


顺序性:包括全局有序和偏序两种。


2-3 ZooKeeper数据模型

ZooKeeper的数据模型基于树型结构的命名空间,与文件系统类似,如下所示:



该数据模型有如下几个特点:

该数据模型是分布式的,数据节点被称为znode,客户端可以连接到每个Server,每个Server的数据完全相同;


znode可以是临时节点也可以是持久性的。对应临时节点,一旦创建znode的客户端与服务器失去联系,这个 znode 也将自动删除,ZooKeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个session 失效,znode 也就删除了。


znode可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 ZooKeeper 的核心特性,ZooKeeper 的很多功能都是基于这个特性实现的,通过这个特性可以实现的功能包括配置的集中管理,集群管理,分布式锁等。




本文版权归黑马程序员云计算大数据培训学院学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:黑马程序员云计算大数据培训学院
首发:http://cloud.itheima.com/ 
分享到:
在线咨询 我要报名
和我们在线交谈!