研究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的常用命令

服务端的常用命令

     

客户端的常用命令

    

四、Zookeeper的应用场景

 

①集群管理

  

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

  

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

  

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

  

⑤ZooKeeper应用于分布式锁

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

posted @ 2019-08-03 13:14  coder、  阅读(376)  评论(0编辑  收藏  举报