この質問は、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 を何度も使用しているため、パフォーマンスを向上させ、より良いコードを作成するために、メソッドを再帰的にしたいと考えていますが、開始方法がわかりません。これで私を助けることができます。事前にどうもありがとうございました。