您的位置:首页 > 其它

Zookeeper实践2:命令行及联想

2015-06-30 18:34 183 查看
zookeeper作用很大,我们先来实践一下。当然先不用java,不用编程,就命令行。首先用客户端工具连接zk:

zookeeper-3.4.6/bin/zkCli.sh -server localhost:2181


进入提示符,列目录:

[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]


查看当前节点数据并能看到更新次数等数据。

[zk: localhost:2181(CONNECTED) 1] ls2 /zookeeper
[quota]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1


创建文件及内容。

[zk: localhost:2181(CONNECTED) 3] create /test "test"
Created /test


获取文件内容。

[zk: localhost:2181(CONNECTED) 4] get /test
"test"
cZxid = 0x100000008
ctime = Tue Jun 30 18:05:22 CST 2015
mZxid = 0x100000008
mtime = Tue Jun 30 18:05:22 CST 2015
pZxid = 0x100000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0


修改节点内容。

[zk: localhost:2181(CONNECTED) 5] set /test "ok"
cZxid = 0x100000008
ctime = Tue Jun 30 18:05:22 CST 2015
mZxid = 0x100000009
mtime = Tue Jun 30 18:07:02 CST 2015
pZxid = 0x100000008
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0


删除节点。

[zk: localhost:2181(CONNECTED) 6] delete /test
[zk: localhost:2181(CONNECTED) 7] ls /
[zookeeper]


zk有这么些操作,能派什么用处呢。从设计模式来说,zk是基于观察者模式来设计的,一旦文件有什么风吹草动,它就会一一通知注册在zk的观察者。

然后派生出如下的作用:

1.统一命名服务

看到zk和文件目录一样的树形节点结构,就应该不难理解,可以用作这个服务了。

2.配置管理

将配置信息放到zk里,前面说了zk的观察者模式,只要配置有修改,每个注册的节点就会接收到更新的配置。

3.集群管理功能

zk的推举leader机制比较有意思,奇数个节点总能推一个能用的出来作为leader.确保整个集群都有一个唯一的管理者来对集群进行管理。这样集群的

风吹草动都必须经过管理者,确保了集群服务的高可用性。

4.共享锁

编过文件锁的同学有福了,zk的共享锁一个道理,哪个需要读取,就生成一个自己的独一文件目录,如果创建成功,就说明自己获取了这把锁。完毕退出,一定要删除自己的目录。

以上就是Zk基于上面文件操作派生出来的一点联想。大道至简,很简单的一个思想却保证了大数据集群的稳定高效,对不对?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: