моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Модель данных ZooKeeper имеет характеристики, аналогичные древовидной структуре файловой системы, но она специально разработана для распределенных приложений.
Ниже приведены основные особенности структур данных ZooKeeper:
Иерархическое пространство имен : ZooKeeper предоставляет иерархическое пространство имен, похожее на файловую систему. Каждый узел имеет уникальный путь в иерархии.
Z-узел : Каждый узел данных в ZooKeeper называется ZNode (аналогично файлу или каталогу в файловой системе). ZNode может иметь дочерние узлы, образуя иерархическую структуру.
Постоянный узел : Постоянные узлы являются наиболее распространенным типом узлов. После создания они сохраняются до тех пор, пока они не будут явно удалены клиентом. Даже если сервис ZooKeeper будет перезапущен, постоянные узлы не будут потеряны.
Постоянный последовательный : Постоянный последовательный узел является расширением постоянного узла и имеет последовательную природу. При создании ZooKeeper добавит порядковый номер, поддерживаемый родительским узлом, в конец имени узла, чтобы обеспечить глобальную уникальность. Этот тип узла обычно используется для реализации сценариев, требующих упорядоченного расположения, например распределенных очередей.
Эфемерный : жизненный цикл временного узла привязан к сеансу клиента. Если сеанс клиента истекает из-за проблем с сетью или сбоя клиента, ZooKeeper автоматически удалит все временные узлы, созданные сеансом. Эта функция делает эфемерные узлы идеальными для реализации механизмов блокировки и выбора лидера.
Эфемерный последовательный : Временные последовательные узлы сочетают в себе функции временных узлов и постоянных последовательных узлов. Они имеют ограниченный срок службы, и при создании им присваивается серийный номер. Это делает их очень полезными при реализации задач распределенной синхронизации и координации, таких как реализация блокировок или других примитивов синхронизации.
Контейнерный узел (Контейнер) : Узел-контейнер — это специальный ZNode, который не хранит данные, но может содержать дочерние узлы. Такие узлы можно использовать для организации и структурирования данных подобно каталогам в файловой системе.
Внутренний узел : Внутренние узлы являются родительскими узлами в ZooKeeper и могут содержать дочерние узлы. Они отличаются от конечных узлов тем, что листовые узлы обычно используются для хранения данных, а внутренние узлы используются для поддержания иерархии.
Листовой узел : Листовые узлы являются конечными узлами иерархии ZNode и обычно используются для хранения данных. У них нет дочерних узлов.
Узел TTL (Время жить) : Узлы TTL — это новая функция, представленная в ZooKeeper версии 3.5.0. Они позволяют узлам устанавливать время жизни (TTL). По истечении срока TTL, если узел является временным узлом, он будет удален, если это постоянный узел, он станет временным узлом и будет удален;
ACL (список контроля доступа):ZNode может устанавливать различные права доступа, чтобы контролировать, какие пользователи или группы пользователей могут читать или изменять узлы.
Наблюдательный механизм : Клиент может установить Watcher на ZNode. При изменении ZNode (например, изменении данных, увеличении или уменьшении дочерних узлов и т. д.) все клиенты с настроенным Watcher будут получать уведомления.
упорство : узлы могут быть постоянными. Это означает, что постоянные узлы все еще существуют, даже если служба ZooKeeper перезапускается. Если узел является эфемерным, он автоматически удаляется по завершении сеанса клиента, в котором он был создан.
хранилище данных : Каждый ZNode может хранить данные, например строковые значения или двоичные данные. Клиенты могут читать и записывать эти данные.
последовательность : при создании последовательного узла ZooKeeper добавляет к имени узла номер, который начинается с 0 и увеличивается каждый раз при создании нового узла. Это гарантирует уникальные имена узлов и может использоваться для реализации порядка FIFO.
контроль версий : Каждый ZNode имеет номер версии. При каждом изменении данных узла номер версии увеличивается. Это можно использовать для проверки того, был ли изменен узел после чтения.