В этой главе представлены функции узлов Zookeeper и простые сценарии использования. Именно благодаря этим функциям узлов Zookeeper можно использовать для разработки приложений для различных сценариев.
1. Имена ключей узлов одного уровня уникальны
Пример:
$ ls / $ create /example 2

Если уже существует/exampleузел, то при повторном создании появится сообщение, что он уже существует.
2. При создании узла необходимо указать полный путь
Пример:
$ ls /example $ create /example/child 0 $ create /example/child/ch01 0

3. При закрытии сессии временные узлы удаляются
Пример:
$ ls /example $ create -e /example/echild 0

В то же время просмотрите этот узел в терминале 2:
$ ls /example

ctrl+cПосле закрытия соединения в терминале 1 выполните запрос в терминале 2/example/echildУзел исчезает.
$ ls /example

4. Автоматическое создание последовательных узлов
Пример:
$ create -s -e /example 0

5. Механизм watch: прослушивание изменений узлов
Механизм прослушивания событий похож на шаблон наблюдателя. Процесс watch таков: клиент регистрирует watcher на пути узла на сервере, и клиент также хранит конкретный watcher. Когда данные узла или дочерние узлы изменяются, сервер уведомляет клиента, и клиент выполняет обработку обратного вызова. Особое примечание: после однократного срабатывания прослушиваемого события событие становится недействительным.
Совет:Обратитесь к главе «Общие команды» об использовании команды get для прослушивания с помощью watch. В последующих главах будут подробно описаны принципы реализации watch.
6. Команда delete может удалять узлы только на один уровень за раз
Пример:
$ ls / $ delete /example

Совет: В новых версиях можно использовать командуdeleteallдля рекурсивного удаления.
Благодаря многочисленным возможностям узлов, упомянутым выше, Zookeeper можно использовать для разработки различных классических сценариев приложений, таких как:
- 1. Публикация/подписка на данные
- 2. Балансировка нагрузки
- 3. Распределенная координация/уведомление
- 4. Управление кластером
- 5. Управление кластером
- 6. Управление мастер-узлом
- 7. Распределённые блокировки
- 8. Распределённые очереди