• ZooKeeper详解


    1 ZooKeeper简介                                              

      ZooKeeper是一个为分布式应用设计的开源协调服务。它可以为用户提供同步、配置管理、分组和命名服务。ZooKeeper的文件系统使用了目录树结构,并且使用java编写,但是它也支持c。
      协调服务非常容易出错,而且很难从故障中恢复,例如协调服务很容易处于竞争状态以至于出现死锁。ZooKeeper设计目的就是为了减轻分布式应用程序锁承担的协调任务

    2 数据模型和层次命名空间                                       

      ZooKeeper提供的命名空间与标准的文件系统非常相似。它的名称是由通过斜线分隔的路径名序列所组成的。ZooKeeper中的每一个节点都是通过路径来识别的。
      ZooKeeper中节点的数据模型,这种树形结构的命名空间操作方便且易于理解。

    3 ZooKeeper中的节点和临时节点                       

      上文已经介绍节点是通过像树一样的结构来进行维护的,并且每一个节点通过路径来标识及访问。除此之外,每一个节点还拥有自身的一些信息,并且每一个节点通过路径来标识及访问。除此之外,每一个节点还拥有自身的一些信息,包括:数据、数据长度、创建时间、修改时间等。从节点的这些特性(既含有数据,又通过路径来表示)可以看出,它既可以被看作一个文件,又可以当成目录。我们用Znode表示ZooKeeper的节点。
      具体说Znode维护着数据、ACL、时间戳等包含交换版本号信息的数据结构,它通过对这些数据的管理来让缓存中的数据生效,并且执行协调更新操作。每当Znode中的数据更新时,它所维护的版本号就会增加,这非常类似于数据库中计数器时间戳的操作方式。

    4 ZooKeeper四字命令                                     

      ZooKeeper支持某些特定的四字命令字母与其交互。它们大多是查询命令,用来获取ZooKeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向ZooKeeper提交相应的命令。

    5 ZooKeeper命令行工具                                  

    启动ZooKeeper服务之后,输入如下命令,连接到ZooKeeper服务
    zkCli.sh -server 192.168.1.112:2181

    5.1 使用ZooKeeper命令的简单操作步骤

    1.使用ls命令来查看当前ZooKeeper所包含的内容
    [zk: 192.168.1.111:2181(CONNECTED) 3] ls /
    [zookeeper]
    2.创建一个新的Znode,使用create /zk myData

    这个命令创建了一个新的Znode节点"zk",以及与它关联的字符串:
    [zk: 192.168.1.111:2181(CONNECTED) 4] create /zk myData
    Created /zk
    3.下面我们运行get命令来确认第二步所创建的Znode是否包含我们所创建的字符串:
    [zk: 192.168.1.111:2181(CONNECTED) 9] get /zk
    myData
    cZxid = 0x400000006
    ctime = Fri Jul 19 05:15:48 PDT 2013
    mZxid = 0x400000006
    mtime = Fri Jul 19 05:15:48 PDT 2013
    pZxid = 0x400000006
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 6
    numChildren = 0
    4.下面我们通过set命令来对zk所关联的字符串进行设置
    [zk: 192.168.1.111:2181(CONNECTED) 10] set /zk shenlan211314
    cZxid = 0x400000006
    ctime = Fri Jul 19 05:15:48 PDT 2013
    mZxid = 0x400000007
    mtime = Fri Jul 19 05:18:58 PDT 2013
    pZxid = 0x400000006
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 13
    numChildren = 0
    5.下面我们将刚才创建的Znode删除
    delete /zk

    WATCHER::

    WatchedEvent state:SyncConnected type:NodeDeleted path:/zk

  • 相关阅读:
    关于iTunes11.1 不能刷自制固件的解决方案
    关于网上流传的四个原版Windows XP_SP2全面了解
    什么是S-OFF,什么是S-ON,HBOOT命令,玩转Android
    用UltraISO制作的u盘ubuntu11.04,启动失败解决方案
    关于个人防火墙的真相
    AVAST 4.8
    忆旧:关于“天网防火墙”的破解
    McAfee VirusScan Enterprise
    记录日志框架:log4net使用
    C#网络编程二:Socket编程
  • 原文地址:https://www.cnblogs.com/people/p/3199815.html
Copyright © 2020-2023  润新知