Zookeeper实践2:命令行及联想
2015-06-30 18:34
183 查看
zookeeper作用很大,我们先来实践一下。当然先不用java,不用编程,就命令行。首先用客户端工具连接zk:
进入提示符,列目录:
查看当前节点数据并能看到更新次数等数据。
创建文件及内容。
获取文件内容。
修改节点内容。
删除节点。
zk有这么些操作,能派什么用处呢。从设计模式来说,zk是基于观察者模式来设计的,一旦文件有什么风吹草动,它就会一一通知注册在zk的观察者。
然后派生出如下的作用:
1.统一命名服务
看到zk和文件目录一样的树形节点结构,就应该不难理解,可以用作这个服务了。
2.配置管理
将配置信息放到zk里,前面说了zk的观察者模式,只要配置有修改,每个注册的节点就会接收到更新的配置。
3.集群管理功能
zk的推举leader机制比较有意思,奇数个节点总能推一个能用的出来作为leader.确保整个集群都有一个唯一的管理者来对集群进行管理。这样集群的
风吹草动都必须经过管理者,确保了集群服务的高可用性。
4.共享锁
编过文件锁的同学有福了,zk的共享锁一个道理,哪个需要读取,就生成一个自己的独一文件目录,如果创建成功,就说明自己获取了这把锁。完毕退出,一定要删除自己的目录。
以上就是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基于上面文件操作派生出来的一点联想。大道至简,很简单的一个思想却保证了大数据集群的稳定高效,对不对?
相关文章推荐
- Android环境搭建 NDK+ADT(免cywgin)
- 浅入浅出SQL注入
- 将undefault和null的数据转换成bool类型的数据 使用!!
- 十四步实现拥有强大AI的五子棋游戏
- 详解UML中的关系(泛化、实现、依赖、关联【聚合、组合】)
- SolrCloud简介
- Python文件操作
- LeetCode || Intersection of Two Linked Lists
- MySQL详解(6)---------MySQL语句
- C# 正则表达式
- BZOJ1099 : [POI2007]树Drz
- zkw(张昆玮)线段树(单点更新)
- easyUI 获取combobox全部数值进行对比方法
- textfield设置只能输入的字符长度
- Delphi中使用Dos窗口输出调试信息
- Python读写文件实际操作的五大步骤
- 新的开始
- KVM设置DHCP、DNS、Gateway
- kml文件初探
- 碰到这种问题 看下数据库服务开启没有