zookeeper使用总结文档- 初级 联系客服

发布时间 : 星期四 文章zookeeper使用总结文档- 初级更新完毕开始阅读ffcee96aa1c7aa00b42acb52

3.2.1.5 zoo_set

ZOOAPI int zoo_set(zhandle_t *zh, const char *path, const char *buffer, int buflen, int version); 功能:

向zookeeper节点写数据。 参数:

zh:zookeeper的句柄,由zookeeper_init得到。 path:节点名称,就是一个类似于文件系统写法的路径。 buffer:欲写的数据。 buflen:欲写的数据的长度。

version:检查这个节点的版本是否为version。当设置为-1时,不会进行版本检查。

3.2.1.6 zoo_get

ZOOAPI int zoo_get(zhandle_t *zh, const char *path, int watch, char *buffer, int* buffer_len, struct Stat *stat); 功能:

获取zookeeper节点数据。 参数:

zh:zookeeper的句柄,由zookeeper_init得到。 path:节点名称,就是一个类似于文件系统写法的路径。

watch: 如果非0,则在服务器端设置监视,当节点发生变化时客户端会得到通知。 buffer:用于保存从 zookeeper 服务器获取的节点数据。

buffer_len:buffer 大小,一旦成功返回该值将会被设置为节点数据的实际大小,如果节点的数据为空,则数据大小为 -1,buffer_len 也为 -1。

stat: 如果非空,stat 指向的结构将会保存该节点的 Stat 信息。

3.2.1.7 zoo_state

ZOOAPI int zoo_state(zhandle_t *zh); 功能:

获取zookeeper连接状态。 参数:

zh:zookeeper的句柄,由zookeeper_init得到。

10

返回值:

ZOK operation completed successfully * ZNONODE the parent node does not exist. * ZNODEEXISTS the node already exists * ZNOAUTH the client does not have permission.

* ZNOCHILDRENFOREPHEMERALS cannot create children of ephemeral nodes. * \\param data The data that will be passed to the completion routine when the * function completes.

* \\return ZOK on success or one of the following errcodes on failure: * ZBADARGUMENTS - invalid input parameters

* ZINVALIDSTATE - zhandle state is either ZOO_SESSION_EXPIRED_STATE or ZOO_AUTH_FAILED_STATE

* ZMARSHALLINGERROR - failed to marshall a request; possibly, out of memory

11

第4章 客户端C API编译

4.1 Linux平台编译

? 解压缩源代码包,cd到zookeeper-x.x.x/src/c目录

?

执行./configure 以生成makefile。对于这一步,configure工具支持下述有用的选项:

--enable-debug 启用优化和调试信息。(默认是禁用的)

--without-syncapi 禁止同步API支持,不创建zookeeper_mt库。(默认是启用的) --disable-static 不创建静态库。(默认是启用的) --disable-shared 不创建共享库。(默认是启用的)

注意:关于执行configure的一般信息,请看INSTALL文件。

? ? ?

编译好的动态库存放在zookeeper-3.4.6/src/c/.libs/目录下。 执行make或者make install,创建并且安装库。

要生成ZooKeeper API的doxygen文档,可执行doxygen-doc。所有文档将放置到docs子目录中。默认情况下,这个命令只生成HTML。关于其他文档格式的信息,请执行./congiure --help。

4.2 Window平台编译

? 解压缩源代码包,cd到zookeeper-x.x.x/src/c目录 ? 目录下有VS工程,打开工程编译即可

12

第5章 zookeeper客户端命令

ZooKeeper命令行工具类似于Linux的shell环境,可以简单的对ZooKeeper进行访问,数据创建,数据修改等操作. 使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。

5.1 命令行工具的常用操作

? ? ?

1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容 2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据

3. 创建文件,并设置初始内容: create /zk \创建一个新的 znode节点“ zk ”以及与它关联的字符串

? ? ? ? ?

4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串 5. 修改文件内容: set /zk \对 zk 所关联的字符串进行设置 6. 删除文件: delete /zk 将刚才创建的 znode 删除 7. 退出客户端: quit 8. 帮助命令: help

5.2 ZooKeeper 常用四字命令

ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取

ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令

?

1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader

? ? ? ? ?

2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。 3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。 4. echo kill | nc 127.0.0.1 2181 ,关掉server

5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。

6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。

? ? ?

7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。 8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。

9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。

13