研究Zookeeper的原理

Posted rmxd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了研究Zookeeper的原理相关的知识,希望对你有一定的参考价值。

 阅读声明:以下内容是结合网上材料所写个人理解,如有不当,欢迎大家指正~~~谢谢啦

一、Zookeeper介绍

  zookeeper,见名知意嘛,zoo动物园,keeper保持者、管理员,结合起来就是动物管理员,为什么这么说呢?不放大家可以看一看目前大数据技术:比如Hadoop的logo是一个黄色的大象、HBase的log像是一个鲸鱼、Hive的logo就比较奇特了,是蜜蜂的身体与Hadoop大象的象头的结合体,等等等。由此我们看来大数据技术就像是一个动物园,而zookeeper就像是一个动物园的管理员,它的logo就更表明了它的含义。

  说了那么多闲话,下面开始进入正题,看Apache官网给它的定义:

  ZooKeeper是一个分布式的协调服务框架,ZooKeeper可以解决分布式中常见的问题:集群管理、统一命名服务、信息配置管理、分布式锁等。

二、ZooKeeper的基本概念

  学好一门技术,首先我们得对这门技术的原理特别清楚,下面我们进入ZooKpper的结构,如下

  技术图片

  1)ZooKeeper中只有一个根节点/,每个节点都可以拥有子节点,每个节点称为zNode节点,同时也可以存储数据。

  2)多个节点形成zNode树,存储父子之间关系及节点信息

  3)zNode树是维系在内存中,以供快速查询及快速响应

  4)  操作节点:都是相对于根节点来说,例如ls /zk_1

  5)节点类型:

      ①普通持久节点:create  /test01  123(当创建此节点的客户端线程挂掉后,该节点依然存储)

      ②普通临时节点:create -e /test01  123(当创建此节点的客户端线程挂掉后,该节点会被删除)

      ③顺序持久节点:create -s /test01  123(顺序指的是在指定的路径下拼上一个递增的顺序号)

      ④临时持久节点:create -e -s  /test01  123(当创建此节点的客户端线程挂掉后,该节点会被删除,顺序指的是在指定的路径下拼上一个递增的顺序号)

  这里额外说明,临时节点的作用:管理集群服务的节点。

  技术图片

 

三、ZooKeeper的常用命令

   1)服务端的常用命令:

     技术图片

   2)客户端的常用命令:

  技术图片  

四、Zookeeper的应用场景

  ①集群管理

  技术图片

  ②集群统一的配置信息管理

  技术图片

  ③ZooKeeper应用于集群Master的监控以及主备切换

  技术图片

  ④ZooKeeper应用于集群中统一的命名

  技术图片

  ⑤ZooKeeper应用于分布式锁(这里我的理解不够深,下次补充Redis应用于分布式锁)

 

以上是关于研究Zookeeper的原理的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper之Zookeeper底层客户端架构实现原理(转载)

[转帖]Zookeeper学习系列 教会你Zookeeper的一些基础概念

Zookeeper学习系列 教会你Zookeeper的一些基础概念

Zookeeper全解析——Client端(转)

第二篇:《从Paxos到zookeeper分布式一致性原理与实践》一致性协议与zookeeper

JAVAEE分布式技术之Zookeeper的第一次课