1 / 17
文档名称:

Zookeeper的学习总结.doc

格式:doc   大小:18KB   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Zookeeper的学习总结.doc

上传人:好用的文档 2021/10/16 文件大小:18 KB

下载得到文件列表

Zookeeper的学习总结.doc

相关文档

文档介绍

文档介绍:Zookeeper的学****总结
Zookeeper的核心概念:ZNode
Znode就是核心结构,Zookeeper服务中是由大量的Znode构成。Znode一般是由客户端建立和修改,作为信息或标志的载体,甚至本身就是标志。
Znode可以设置为持久(PERSISTENT)或临时(EPHEMERAL),区别在于临时的节点若断开连接后就自动删除。建立节点时可选择是否使用序列号命名(SEQUENTIAL),若启用则会自动在节点名后加入唯一序列编号。Session
作为客户端和Zookeeper服务之间交互的凭证。Watch
当客户端对节点信息进行查询操作之后,可以选择是否设置一个Watch。其作用就是当本次查询的数据在服务器端发生变化之后,会对设置Watch的客户端发送通知。一次发送之后,就将删除该Watch,以后的变更或不再设置Watch则不会通知。ACLs
节点的权限限制使用ACL,如增删改查操作。Zookeeper的服务器安装:
1、

2、
使用
tar xzvf zookeeper- -C ./
解压
3、
设置,将conf/。
4、
启动Zookeeper服务:bin/ start
5、
启动客户端连接:bin/ -server :2181(此处在本机,且使用了默认端口,且在Java环境中)
6、
使用命令:ls、get、set等。
7、
关闭Zookeeper服务:bin/ stopZookeeper代码编写:
代码编写部分比较简单,因为暴露的接口很少,主要复杂在于项目如何使用节点以及节点信息。
启动Zookeeper服务之后,客户端代码进行节点的增删,Watch的设置,内容的改查等。
此处建议查看官方的《Programming with ZooKeeper - A basic tutorial》部分,当中举了两个例子来模拟分布式系统的应用。
代码基本没有问题,唯一需要注意的就是:若之间按照原版进行调试时,有可能在调用 Stat s
=
(root,
false
);这句代码时会出现一个异常,当中包括“KeeperErrorCode = ConnectionLoss for”。
这个问题引起的原因可以看一下代码 (
"
Starting ZK:
"
);
zk
=
new
ZooKeeper(address,
3000
,
this
);
mutex
=
new
Integer(
-
1
);
(
"
Finished starting ZK:
"
+
zk);最后一行有打印出Zookeeper目前的信息,若未修改的原代码,此处的State应当是CONECTING。连接中的时候去验证是否存在节点会报错。解决的方法也很简单,就是等到Zookeeper客户端以及完全连接上服务器,State为CONECTED之后再进行其他操作。给出代码示例://
使用了倒数计数,只需要计数一次private
CountDownLatch connectedSignal
=
new
CountDownLatch(
1
);
SyncPrimitive(String address) { if
(zk
==
null
){ try
{
(
"
Starting ZK:
"
);
zk
=
new
ZooKeeper(address,
3000
,
this
);
mutex
=
new
Integer(
-
1
);
();
//
等待连接完