zookeeper使用总结文档- 初级

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

? 10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。

? 11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。

14

第6章 zookeeper使用常见问题

? Watches通知是一次性的,触发后必须重复注册。

? 调用zookeeper_init函数时,若返回一个非空句柄zhandle_t *zh,则认为初始化成功,这样可能

会导致后续操作失败。因为zookeeper_init创建与ZooKeeper服务端通信的句柄以及对应于此句柄的会话,而会话的创建是一个异步的过程,仅当会话建立成功,zookeeper_init才返回一个可用句柄。可以通过zoo_state(zh)判断状态值是否为ZOO_CONNECTED_STATE来确定初始化是否成功。

? maxSessionTimeout回话超时时间不宜设置太短,容易使zookeeper操作超时。

15

第7章 附录

7.1 zookeeper初始化、销毁函数

ZOOAPI zhandle_t *zookeeper_init(const char *host, watcher_fn fn, int recv_timeout, const clientid_t * clientid, void *context, int flags);

ZOOAPI int zookeeper_close(zhandle_t * zh);

7.2 zookeeper辅助函数

// 设置日志等级、日志流

ZOOAPI void zoo_set_debug_level(ZooLogLevel logLevel);

ZOOAPI void zoo_set_log_stream(FILE * logStream);

ZOOAPI const clientid_t *zoo_client_id(zhandle_t * zh);

ZOOAPI int zoo_recv_timeout(zhandle_t * zh);

ZOOAPI const void *zoo_get_context(zhandle_t * zh);

ZOOAPI void zoo_set_context(zhandle_t * zh, void *context);

ZOOAPI watcher_fn zoo_set_watcher(zhandle_t * zh, watcher_fn newFn);

ZOOAPI struct sockaddr *zookeeper_get_connected_host(zhandle_t * zh, struct sockaddr* addr, socklen_t * addr_len);

ZOOAPI int zookeeper_interest(zhandle_t * zh, int *fd, int *interest, struct timeval *tv);

ZOOAPI int zookeeper_process(zhandle_t * zh, int events);

ZOOAPI int zoo_state(zhandle_t * zh);

16

ZOOAPI const char *zerror(int c);

ZOOAPI int is_unrecoverable(zhandle_t * zh);

ZOOAPI void zoo_deterministic_conn_order(int yesOrNo);

7.3 zookeeper同步接口

ZOOAPI int zoo_add_auth(zhandle_t * zh, const char *scheme, const char *cert, int certLen,

void_completion_t completion, const void *data);

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);

ZOOAPI int zoo_delete(zhandle_t * zh, const char *path, int version);

ZOOAPI int zoo_exists(zhandle_t * zh, const char *path, int watch, struct Stat *stat);

ZOOAPI int zoo_wexists(zhandle_t * zh, const char *path, watcher_fn watcher, void *watcherCtx, struct Stat *stat);

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

ZOOAPI int zoo_wget(zhandle_t * zh, const char *path, watcher_fn watcher, void *watcherCtx, char *buffer, int *buffer_len, struct Stat *stat);

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

ZOOAPI int zoo_set2(zhandle_t * zh, const char *path, const char *buffer, int buflen, int version, struct Stat *stat);

17

联系合同范文客服:xxxxx#qq.com(#替换为@)