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

原文地址:https://www.cnblogs.com/people/p/3199815.html