zookeeper使用总结文档- 初级(3)

2019-01-10 13:12

context:暂时用不到,忽略。

flags:设置为0,zookeeper开发团队保留以后使用。

3.2.1.2 zookeeper_close

ZOOAPI int zookeeper_close(zhandle_t *zh);

功能:

关闭句柄,释放资源。 参数:

zh:zookeeper句柄。 返回值:

ZOK表示成功

ZBADARGUMENTS表示输入参数无效

ZMARSHALLINGERROR - failed to marshall a request; possibly, out of memory ZOPERATIONTIMEOUT - failed to flush the buffers within the specified timeout.

ZCONNECTIONLOSS - a network error occured while attempting to send request to server

ZSYSTEMERROR -- a system (OS) error occured; it's worth checking errno to get details

3.2.1.3 zoo_create

ZOOAPI int zoo_create(zhandle_t *zh, const char *path, const char *value,int valuelen,

const struct ACL_vector *acl, int flags,char *path_buffer, int path_buffer_len);

功能:

创建一个同步的zookeeper节点。 参数:

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

value:欲存储到该节点的数据。如果不存储数据,则设置为NULL。 valuelen:欲存储的数据的长度。如果不存储数据,则设置为-1.

acl:初始的ACL节点,ACL不能为空。比如设置为&ZOO_OPEN_ACL_UNSAFE。 flags:一般设置为0。

path_buffer:将由新节点填充的路径值。可设置为NULL。

8

path_buffer_len:path_buffer的长度。 返回值:

ZOK表示操作成功。

ZNONODE表示该节点不存在。 ZNODEEXISTS表示节点已经存在。 ZNOAUTH表示客户端(client)无权限。

ZNOCHILDRENFOREPHEMERALS表示不能够创建临时(ephemeral)节点的子节点(children)。

3.2.1.4 zoo_wexists

ZOOAPI int zoo_wexists(zhandle_t *zh, const char *path, watcher_fn watcher,

void* watcherCtx, struct Stat *stat);

功能:

同步监视一个zookeeper节点(node)是否存在。 参数:

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

watcher:如果不为 NULL 则会在服务器端设置监视,当节点发生变化时客户端会得到通知,即使当前指定的节点不存在也会设置监视,这样该节点被创建时,客户端也可以得到通知。

watcherCtx: 用户指定的数据,将被传入到监视器回调函数中,与由 zookeeper_init() 设置的全局监视器上下文不同,该函数设置的监视器上下文只与当前的监视器相关联。 stat:返回的Stat信息 返回值:

ZOK表示操作成功。

ZNONODE表示该节点不存在。

ZNOAUTH表示客户端(client)无权限。 ZINVALIDSTATE表示存在非法的参数。

9

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


zookeeper使用总结文档- 初级(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:宏观经济学习题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: