Zookeeper:A Distributed Coordination Service for Distributed Applications.

一、Zookeeper简介

  众所周知,协同服务是分布式应用首先要解决的一大难题,尤其是在存在资源竞争和死锁的情况。Zookeeper就是这样一个应用,它为分布式应用提供分布式协同服务,使其他分布式应用可以在其上面实现更高级的功能。

  既然Zookeeper是为其他分布式应用提供服务的,那么它到底拥有什么,进而能够提供哪些服务呢?

  Zookeeper在内存用维护一个共享的命名空间,这个命名空间可以近似看成分层的树状文件系统,树中每个节点被称为znode,可以在znode上创建、删除、修改、查询数据,这样命名空间树中的数据就由从根到节点的路径唯一确定。

Zookeeper简介与安装-LMLPHP

  Zookeeper向外提供了这些简单易用的增删改查znode数据的接口,并且在这些znode数据上设置watch监督机制。基于Zookeeper的其他分布式应用(客户端)可以watch那些它需要关注的znode数据,当数据状态发生变化的时候,客户端会及时收到通知。这样Zookeeper可以不用关心客户端存放的是什么数据,而能够为其上面的分布式应用提供协同服务。

二、如何安装Zookeeper

  Zookeeper要求运行环境中有JDK,JDK版本在1.7或者更高版本,Linux安装JDK可以参考这里,安装好JDK之后就可以安装Zookeeper了。

  1、在Zookeeper官网选择要安装的版本,下载下来后解压。

  2、在Zookeeper的conf/目录下新建zoo.cfg文件,在里面添加:

    tickTime=2000

    dataDir=/var/lib/zookeeper

    clientPort=2181

  3、接下来就是在Zookeeper的bin目录下启动Zookeeper了,启动命令:./zkServer.sh start

ps:因为Zookeeper基本上是被分布式应用用来存储一些配置文件等数据,因此对系统的负载很小,如果你的分布式应用不是很大的话,基本上在一台机器上安装单机的Zookeeper已经够用了。


三、用Zookeeper自带的客户端连接Zookeeper服务

  bin/zkCli.sh -server 127.0.0.1:2181  //连接Zookeeper服务器

  help                  //查看Zookeeper命令帮助

  ls /                   //列出Zookeeper根目录下的znode节点

  create /znode_test1 mydata      //在根目录下名为znode_test1节点上创建名为mydata的数据

  get /znode_test1           //获取znode_test1节点下的数据

  从这些命令使用过程中,能够很直观具体的体验到Zookeeper对分布式应用提供的功能和服务。

转载请注明原文出处,谢谢

05-07 15:42