ZooKeeper中的持久和短暂节点

时间:2015-09-19 08:11:10

标签: c++ apache-zookeeper

我想知道如何使用ZooKeeper客户端在C++中创建持久性节点。我从documentation了解到,有一种方法zoo_acreate。文档说明了这种方法:

  

此方法将在ZooKeeper中创建一个节点。只有在节点尚不存在的情况下才能创建节点。 Create Flags影响节点的创建。如果设置了ZOO_EPHEMERAL标志,那么如果客户端会话消失,节点将自动被删除。如果设置了ZOO_SEQUENCE标志,则会将唯一的单调递增序列号附加到路径名称。

但是,不幸的是,几乎和C ++库一样,这个库完全没有合理的小小的例子来证明库方法的用法。例如,在这种情况下,文档页面是关于zoo_acreate方法的,但是一些看起来很糟糕的例子完全是关于其他的东西(它甚至没有提到zoo_acreate方法)。

所以,我的问题是如何设置这些标志ZOO_EPHEMERALZOO_SEQUENCE。在一些小例子的背景下看到这一点会很棒。谢谢!

1 个答案:

答案 0 :(得分:1)

用Google搜索" zoo_acreate ZOO_EPHEMERAL"把这作为第七个结果:

string path = "/nodes/";
string value = "data";
int rc = zoo_acreate(zh, path.c_str(), value.c_str(), value.length(),
    &ZOO_OPEN_ACL_UNSAFE, ZOO_EPHEMERAL | ZOO_SEQUENCE, &czoo_created, &where);

来源:https://issues.apache.org/jira/browse/ZOOKEEPER-348