zookeeper入门(3)API常用函数功能与参数详解

《zooker入门系列教程》:

1 - 如何在单机上实现ZooKeeper伪机群/伪集群部署

2 - 解读zookeeper的配置项



1. zookeeper初始化

 

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. 监视节点是否存在

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表示该节点不存在,ZNOAUTH表示客户端(client)无权限,ZINVALIDSTATE表示存在非法的参数,后两者暂略(TODO)。


3. 新建zookeeper节点

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节点

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. 获取某节点的子节点

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。

你可能感兴趣的:(api,struct,vector,存储,buffer,Path)