この章では、ZooKeeper のノード特性と簡単な使用シーンを紹介します。これらのノード特性が存在するからこそ、ZooKeeper はさまざまなシーンのアプリケーションを開発できるのです。
1、同じレベルのノードのキー名は一意である
例:
$ ls / $ create /サンプル 2

既に存在している/サンプルノードが存在する場合、再度作成すると「既に存在します」と表示されます。
2、ノード作成時には、必ずフルパスを含める必要がある
例:
$ ls /サンプル $ create /サンプル/child 0 $ create /サンプル/child/ch01 0

3、セッションが閉じられると、一時ノードは削除される
例:
$ ls /サンプル $ create -e /サンプル/echild 0

同時に端末2でこのノードを確認します:
$ ls /サンプル

ctrl+c端末1の接続を閉じた後、端末2で確認します/サンプル/echildノードが消えます。
$ ls /サンプル

4、順序ノードを自動的に作成する
例:
$ create -s -e /サンプル 0

5、watch メカニズムでノードの変化を監視する
イベント監視メカニズムはオブザーバーパターンに似ています。watch の流れは、クライアントがサーバー側の特定のノードパスに watcher を登録し、同時にクライアントも特定の watcher を保存します。ノードのデータや子ノードに変化があった場合、サーバーがクライアントに通知し、クライアントがコールバック処理を行います。特に注意:監視イベントが一度トリガーされると、そのイベントは無効になります。
ヒント:一般的なコマンドの章の get コマンドによる watch の監視使用法を参照してください。後続の章で watch の実装原理を詳しく説明します。
6、delete コマンドは1層ずつしか削除できない
例:
$ ls / $ delete /サンプル

ヒント:新しいバージョンでは、deleteallコマンドで再帰的に削除できます。
上記のような多くのノード特性により、ZooKeeper はさまざまな古典的なアプリケーションシーンを開発できます。例えば:
- 1. データ公開/購読
- 2. 負荷分散
- 3. 分散調整/通知
- 4. クラスタ管理
- 5. クラスタ管理
- 6. master 管理
- 7. 分散ロック
- 8. 分散キュー