С точки зрения паттернов проектирования, Zookeeper представляет собой распределенную систему управления сервисами, основанную на паттерне наблюдателя. Она отвечает за хранение и управление данными, которыми интересуются все участники. Затем она принимает регистрацию наблюдателей, и при изменении состояния данных, Zookeeper будет уведомлять всех зарегистрированных наблюдателей о необходимости принять соответствующие меры.
Zookeeper = файловая система + механизм уведомлений
Zookeeper состоит из одного лидера (Leader) и нескольких последователей (Follower).
Если более половины узлов в кластере работают, то Zookeeper может продолжать обслуживание. Поэтому рекомендуется установить нечетное количество серверов.
Глобальная согласованность данных: каждый узел хранит одинаковую копию данных, поэтому клиенты, подключенные к любому узлу, получают одни и те же данные.
Обновления выполняются последовательно, запросы на обновление от одного клиента выполняются в порядке их отправки.
Атомарность обновления данных: либо операция обновления данных завершается успешно, либо она завершается ошибкой.
Временная актуальность: в течение определенного периода времени клиенты могут получить последние данные.
Структура данных ZooKeeper аналогична структуре файловой системы Unix, представляющей собой дерево, где каждый узел называется ZNode. Каждый ZNode по умолчанию может хранить до 1 МБ данных, каждый ZNode можно уникально идентифицировать по его пути.
Предоставляемые услуги включают:
Единое именование
Единое управление конфигурациями
Единое управление кластером
Динамическое подключение и отключение узлов сервера
Мягкая балансировка нагрузки
Постоянные (Persistent): после разрыва соединения между клиентом и сервером, созданные узлы не удаляются.
Кратковременные (Ephemeral): после разрыва соединения между клиентом и сервером, созданные узлы автоматически удаляются.
После разрыва соединения между клиентом и Zookeeper, узел остается существующим.
После разрыва соединения между клиентом и Zookeeper, узел остается существующим, но Zookeeper присваивает ему название с учетом порядкового номера.
Узел удаляется после того, как клиент отключается от Zookeeper, но Zookeeper присваивает узлу последовательно нумерованное имя.
Дистрибутивный блокировочный механизм Zookeeper
Алгоритм Paxos
Протокол ZAB
Свойство CAP
Протокол ZAB — это специально разработанный для дистрибутивной системы координации Zookeeper протокол атомарной рассылки, поддерживающий восстановление после сбоев. Протокол ZAB включает две основные модели: восстановление после сбоев и распределение сообщений. Когда весь кластер Zookeeper только что запущен или лидер сервер вышел из строя, был перезапущен или произошла сетевая неисправность, которая привела к тому, что более половины серверов не могут поддерживать нормальную связь с лидером, все процессы (серверы) переходят в режим восстановления после сбоев, где происходит выбор нового лидера, затем серверы-follower начинают синхронизацию данных с новым лидером. Когда более половины машин в кластере завершают синхронизацию данных с лидером, режим восстановления завершается, и кластер переходит в режим распределения сообщений, где лидер начинает принимать транзакционные запросы от клиентов и генерировать транзакционные предложения для обработки этих запросов.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )