我将ZooKeeper引入了一个并发管理项目,我尝试的第一件事就是对我来说非常明显(使用zkpython绑定):
zh = zookeeper.init('localhost:2181') zookeeper.create(zh, '/path/to/a/node', '', [ZOO_OPEN_ACL_UNSAFE])
我找回了NoNodeException
麻烦.
在对此进行反思并查看文档(例如它们)之后,我一直无法找到一种方法来完成mkdir -p
ZooKeeper为我创建缺少的父节点的位置.
我是否遗漏了任何东西,或者我只是为了路径的每个部分发布了单独的create()s,无论我喜欢与否?
你不得不为路径的每个元素发出单独的create().Zookeeper只构建了原子操作.递归创建路径不再是原子操作.如果在创建一半路径元素后操作挂起,Zookeeper无法知道您想要它做什么.我不知道,如果python中已经有一个Zookeeper帮助程序库了.java(zkClient)中有一个允许您通过多次调用create()来创建递归路径.