设为首页 收藏本站
查看: 1265|回复: 0

[经验分享] ZooKeeper详解

[复制链接]

尚未签到

发表于 2015-9-6 10:00:34 | 显示全部楼层 |阅读模式
1 ZooKeeper简介                                             
  ZooKeeper是一个为分布式应用设计的开源协调服务。它可以为用户提供同步、配置管理、分组和命名服务。ZooKeeper的文件系统使用了目录树结构,并且使用java编写,但是它也支持c。
  协调服务非常容易出错,而且很难从故障中恢复,例如协调服务很容易处于竞争状态以至于出现死锁。ZooKeeper设计目的就是为了减轻分布式应用程序锁承担的协调任务
2 数据模型和层次命名空间                                       
  ZooKeeper提供的命名空间与标准的文件系统非常相似。它的名称是由通过斜线分隔的路径名序列所组成的。ZooKeeper中的每一个节点都是通过路径来识别的。
  ZooKeeper中节点的数据模型,这种树形结构的命名空间操作方便且易于理解。 DSC0000.jpg
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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110012-1-1.html 上篇帖子: zookeeper 客户端编程 下篇帖子: zookeeper实战:SingleWorker代码样例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表