我知道已经为使用 python 的动物园管理员提出并回答了这个问题。答案很好,但是,我想要一些与代码更相关的东西。我已经实现了一个创建节点的方法,但我想递归地做。我的节点的结构将是这样的:
动物园管理员
- 网络服务器
- 服务器1
- 服务器2
- 模块连接
- 数据库模块
- 电脑1
- 电脑2
- 服务模块
- 电脑3
- 搜索模块
- 电脑4
- 数据库模块
我有类似的东西:
Zookeeper zk = new Zookeeper(...);
public void createNodeRecursively(String type) {
final String node = "/" + type + "/" + info.getIP() + ":" + info.getPort(); // Correct line
if (zk.exists("/" + type, null) == null) {
Object ctx = new Object();
StringCallback cb = new StringCallback() {
public void processResult(int rc, String path,
Object ctx, String name) {
if (name.equals("/" + type))// just in case
try {
zk.create(node, info.getBytes(),
Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL);
} catch (Exception e) {
e.printStackTrace();
}
}
};
zk.create("/" + type, info.getBytes(), Ids.OPEN_ACL_UNSAFE,
CreateMode.PERSISTENT, cb, ctx);
} else
zk.create(node, info.getBytes(), Ids.OPEN_ACL_UNSAFE,
CreateMode.EPHEMERAL);
}
}
如您所见,我多次使用 zk.create,所以我想让该方法递归以获得性能并获得更好的代码,但我不知道如何开始,如果有人我将非常感激可以帮我解决这个问题。非常感谢您提前。