您的位置:首页 > 其它

zookeeper: 入门 - 3 - API常用函数功能与参数详解

2012-11-15 09:32 691 查看
http://blog.csdn.net/poechant/article/details/6675431

1. zookeeper初始化

 
[html] view
plaincopyprint? 
zhandle_t *zookeeper_init(const char *host, watcher_fn fn,  
int recv_timeout, const clientid_t *clientid, void *context, int flags);  

功能:

创建一个句柄(handle)和一个响应(response)这个句柄的会话(session)。

参数:

host:zookeeper主机列表,用逗号间隔。

fn:用于监视的回调函数。

clientid:之前建立过连接,现在要重新连的客户端(client)ID。如果之前没有,则为0.

context:暂时用不到,忽略。(TODO)

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

2. 监视节点是否存在

[plain] view
plaincopyprint? 
int zoo_exists(zhandle_t *zh, const char *path, int watch,  
struct Stat *stat);  

功能:

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

参数:

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

path:节点名称,就是一个类似于文件系统写法的路径。

watch:设置为0,则无作用。设置为非0时,暂时用不到,忽略。(TODO)

stat:(TODO)

返回值:ZOK,ZNONODE,ZNOAUTH,ZBADARGUMENTS,ZINVALIDSTATE,ZMARSHALLINGERROR。ZOK表示操作成功,ZNONODE表示该节点不
4000
存在,ZNOAUTH表示客户端(client)无权限,ZINVALIDSTATE表示存在非法的参数,后两者暂略(TODO)。

3. 新建zookeeper节点

[plain] view
plaincopyprint? 
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。(TODO)

flags:一般设置为0.(TODO)

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

path_buffer_len:path_buffer的长度。

返回值:ZOK,ZNONODE,ZNODEEXISTS,ZNOAUTH,ZNOCHILDRENFOREPHEMERALS,ZBADARGUMENTS,ZINVALIDSTATE,ZMARSHALLINGERROR。ZOK表示操作成功,ZNONODE表示该节点不存在,ZNODEEXISTS表示节点已经存在,ZNOAUTH表示客户端(client)无权限,ZNOCHILDRENFOREPHEMERALS表示不能够创建临时(ephemeral)节点的子节点(children),ZINVALIDSTATE表示存在非法的参数,后两者暂略(TODO)。

4. 设置zookeeper节点

[plain] view
plaincopyprint? 
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时,不会进行版本检查。(TODO)

5. 获取某节点的子节点

[plain] view
plaincopyprint? 
int zoo_wget_children(zhandle_t *zh, const char *path, watcher_fn watcher,  
void* watcherCtx, struct String_vector *strings);  

功能:

同步列出一个节点的所有子节点。

参数:

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

path:节点名称,就是一个类似于文件系统写法的路径。

watcher:若设置为非0,则zookeeper服务器(server)会设置一个监视器,用来在节点发生改变时通知客户端(client)。

watcherCtx:传送给watcher作为回调的具体用户数据(user specific data)。

strings:用来保存得到的子节点路径。

返回值:ZOK,ZNONODE,ZNOAUTH,ZBADARGUMENTS,ZINVALIDSTATE,ZMARSHALLINGERROR。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zookeeper