zookeeper_cpp_client
zookeeper_cpp_client copied to clipboard
c++ wrapper for libzookeeper c api, is similar to Java Client : ZkClient, Curator
如何使用呐
跟楼主讨论些问题
不知道楼主有没有看过zookeeper.h的注释,解决session timeout的重连并没有必要起一个定时器来做。zk的client库会在丢失连接后不停尝试重连,成功重连后,如果已经超时,会触发一个ZOO_EXPIRED_SESSION_STATE的事件,捕获该事件以后就可以做重新建立session的操作。 我自己深知写git项目的不易,但是楼主这个写法难免会误导写zk的新人,建议修改。
1. zhandle_t 是struct,Reconnect和外部应用调用时存在并发问题,仅靠 外部应用枷锁时无法解决的。失效的zhandle_t应该及时释放,避免内存泄漏。 2. 存在丢通知的问题,按照事件来处理必定会丢通知(例如在会话超时的那段时间内有数据变化,订阅无法通知到),所以建议采用 数据版本号,异常情况下(会话异常),比对本地与服务器的版本差异,继而得到发现丢失数据变化通知。