码迷,mamicode.com
首页 > 其他好文 > 详细

初识Zookeeper

时间:2016-04-30 01:04:30      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

  Zookeeper算是现在互联网公司中软件开发中最常接触的“软件”之一了。它的设计目标就是将那些复杂且容易出错的分布式一致性服务封装起来,然后构成一个高效可靠的原语集,然后提供一系列简单易用的接口给用户。其实比如一些RPC框架、Kafka等消息队列机制,内部都是依赖了Zookeeper来进行分布式调度,Hadoop、storm、HBase、Solr等都把Zookeeper作为核心组件。分布式应用可以利用zk提供的诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。

     ZK最早起源于雅虎研究院,zookeeper的来源也是因为雅虎众多项目都是以动物来命名,作为他们服务的管理和协调者,zookeeper的名字也就因此而来了。

   ZK的几个基本概念:

     1、集群角色。zk没有沿用传统的Master/Slave的概念,而是引入了Leader、Follower和Observer角色。Leader服务器为客户端提供读写;Follower和Observer都可以提供读服务器,区别在于,Observer服务器不参与Leader选举过程,也不参与写操作的“过半写成功”策略。

     2、会话(Session)。客户端和服务器端的tcp长链接。

     3、数据节点(Znode)。Zk的所有数据存在内存中,数据模型是一棵树,由斜杠进行分割路径,例如:/foo/path1.Zk中,ZNode分为持久节点和临时节点两类。临时节点生命周期是会话级别的,持久几点就是用久了。

     4、版本。Znode中会有zk特殊维护的Stat的数据结构,Stat中记录了这个ZNode的三个数据版本,version(当前版本)、cversion(当前ZNode子节点的版本)、aversion(当前ZNode的ACL版本)。

     5、Watcher,事件监听器。 ZK允许用户在指定节点上面注册一些Watcher,在一些事件发生的时候,zk会将事件通知到感兴趣的客户端上面去。

     6、ACL(Access Control Lists),利用ACL策略来进行权限控制。

     

初识Zookeeper

标签:

原文地址:http://www.cnblogs.com/congsg2016/p/zookeeper.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!