Учебники

Учебник ZooKeeper

Что такое распределенная система?

Распределенное приложение — это приложение, которое может работать в нескольких системах в сети. Он работает одновременно, координируя себя, чтобы выполнить определенную задачу. Выполнение этих задач может занять много часов любым нераспределенным приложением.

Что такое Zookeeper?

Apache Zookeeper — это сервис распределенной координации с открытым исходным кодом, который помогает вам управлять большим набором хостов. Управление и координация в распределенной среде сложны. Zookeeper автоматизирует этот процесс и позволяет разработчикам сосредоточиться на создании функций программного обеспечения, а не беспокоиться о распределенной природе своих приложений.

Zookeeper помогает вам поддерживать информацию о конфигурации, именовании, групповых сервисах для распределенных приложений. Он реализует разные протоколы в кластере, поэтому приложение не должно реализовываться самостоятельно. Он обеспечивает единое согласованное представление нескольких машин.

В этом уроке вы узнаете:

Почему Apache Zookeeper?

Вот важные причины популярности Zookeeper:

  • Это позволяет взаимное исключение и сотрудничество между процессами сервера
  • Это гарантирует, что ваше приложение работает последовательно.
  • Процесс транзакции никогда не завершается частично. Ему присваивается статус Успех или неудача. Распределенное состояние может быть задержано, но оно никогда не ошибается
  • Независимо от того, к какому серверу он подключается, клиент сможет видеть то же представление службы
  • Помогает вам кодировать данные в соответствии с определенным набором правил
  • Это помогает поддерживать стандартное иерархическое пространство имен, подобное файлам и каталогам
  • Компьютеры, которые работают как единая система, которая может быть подключена локально или географически
  • Позволяет присоединиться / покинуть узел в кластере и статус узла в режиме реального времени
  • Вы можете повысить производительность, развернув больше машин
  • Это позволяет вам выбрать узел в качестве лидера для лучшей координации
  • ZooKeeper быстро работает с рабочими нагрузками, где чтение данных происходит чаще, чем запись

Архитектура ZooKeeper: Как это работает?

  • Zookeeper следует архитектуре клиент-сервер
  • Все системы хранят копию данных
  • Лидеры выбираются при запуске

Сервер: сервер отправляет подтверждение при подключении любого клиента. В случае отсутствия ответа от подключенного сервера клиент автоматически перенаправляет сообщение на другой сервер.

Клиент : Клиент является одним из узлов в распределенном кластере приложений. Это поможет вам получить доступ к информации с сервера. Каждый клиент регулярно отправляет на сервер сообщение, которое помогает серверу узнать, что клиент жив.

Лидер: один из серверов обозначен как Лидер. Он предоставляет всю информацию клиентам, а также подтверждение того, что сервер жив. Он выполнит автоматическое восстановление, если какой-либо из подключенных узлов выйдет из строя.

Фолловер: Серверный узел, который следует инструкции лидера, называется фолловером.

  • Клиентские запросы на чтение обрабатываются соответствующим образом подключенным сервером Zookeeper.
  • Клиент пишет запросы обрабатываются лидером Zookeeper.

Ансамбль / Кластер: группа серверов Zookeeper, которая называется ансамблем или кластером. Вы можете использовать инфраструктуру ZooKeeper в режиме кластера, чтобы система работала с оптимальным значением при работе Apache.

ZooKeeper WebUI: если вы хотите работать с управлением ресурсами ZooKeeper, то вам нужно использовать WebUI. Это позволяет работать с ZooKeeper, используя веб-интерфейс пользователя, вместо использования командной строки. Он предлагает быструю и эффективную связь с приложением ZooKeeper.

Модель данных Zookeeper (ZDM)

  • Модель данных zookeeper следует пространству имен Hierarchal, где каждый узел называется ZNode. Узел — это система, в которой работает кластер.
  • Каждый ZNode имеет данные. Может иметь или не иметь детей
  • Пути ZNode:
    • Канонический, разделенный слешами и абсолютный
    • Не используйте относительные ссылки
    • Имена могут иметь символы Unicode
  • ZNode поддерживает структуру статистики и номер версии для изменений данных.

Типы узлов Zookeeper

Существует три типа Znodes:

Постоянство znode: этот тип znode активен даже после того, как клиент, который создал этот конкретный znode, был отключен. По умолчанию в zookeeper все узлы являются постоянными, если он не указан.

Эфемерный зноуд: этот тип зоокейдера зноуде жив, пока клиент не жив. Поэтому, когда клиент получает отключение от зоопарка, он также будет удален. Более того, эфемерные узлы не могут иметь детей.

Последовательный узел: Последовательный узел может быть либо эфемерным, либо постоянным. Таким образом, когда новый znode создается как последовательный znode. Вы можете назначить путь znode, прикрепив 10-значный порядковый номер к исходному имени.

ZDM- Часы

Zookeeper, событие наблюдения — это одноразовый триггер, который отправляется клиенту, который установил наблюдение. Это произошло, когда данные из этих часов изменились. ZDM watch позволяет клиентам получать уведомления при изменении znode. Операции чтения ZDM, такие как getData (), getChidleren (), Существуют, имеют возможность установки часов.

Часы заказываются, порядок следования событий соответствует порядку обновлений. Клиент сможет увидеть событие наблюдения для znode, прежде чем увидит новые данные, которые соответствуют этому znode.

ZDM- Список контроля доступа

Zookeeper использует ACL для управления доступом к своим znodes. ACL состоит из пары (схема: идентификатор, разрешение)

Построить в ACL схемах:

Мир: есть один идентификатор, любой

auth: не использовать идентификатор, он представляет любого аутентифицированного пользователя

дайджест: используйте имя пользователя: пароль

host: позволяет использовать имя хоста клиента в качестве идентификатора ACL-идентификатора.

IP: используйте IP-адрес хоста клиента в качестве идентификатора ACL-идентификатора.

Разрешения ACL:

  • СОЗДАЙТЕ
  • ЧИТАТЬ
  • ЗАПИСЫВАТЬ
  • УДАЛЯТЬ
  • ADMIN

Ex (IP: 192.168.0.0/16, READ)

ZKS — состояние сессии и время жизни

  • Перед выполнением любого запроса важно, чтобы клиент установил сеанс со службой
  • Все операции, которые клиенты отправляют на сервис, автоматически связываются с сеансом
  • Клиент может подключиться к любому серверу в кластере. Но он будет подключаться только к одному серверу
  • Сессия предоставляет «порядок гарантий». Запросы в сеансе выполняются в порядке FIFO
  • Основные состояния сеанса: 1) соединение, 2) соединение 3) закрытие 4) не соединение.

Как установить ZooKeeper

Шаг 1) Перейдите по этой ссылке и нажмите «Продолжить подписку»

Шаг 2) На следующей странице нажмите Принять условия

Шаг 3) Вы увидите следующее сообщение

Шаг 4) Обновите страницу через 5 минут и нажмите «Продолжить настройку»

Шаг 5) На следующем экране нажмите «Продолжить запуск»

Шаг 6) Вы сделали!

Приложения Apache ZooKeeper

Apache Zookeeper используется для следующих целей:

  • Управление конфигурацией
  • Услуги по именованию
  • Выбор лидера
  • Очередь сообщений
  • Управление системой уведомлений
  • синхронизация
  • Управление распределенным кластером

Компании, использующие Zookeeper

  • Yahoo
  • facebook
  • eBay
  • щебет
  • Netflix
  • Zynga
  • Nutanix

Недостатки использования Zookeeper

  • Потеря данных может произойти, если вы добавляете новые серверы Zookeeper
  • Нет миграции для пользователей
  • Не предлагать поддержку размещения в стойке и осведомленности
  • Zookeeper не позволяет сократить количество модулей, чтобы предотвратить случайную потерю данных
  • Вы не можете переключить службу на хост-сеть без полной переустановки, когда служба развернута в виртуальной сети.
  • Служба не поддерживает изменение требований к объему после первоначального развертывания
  • Здесь задействовано большое количество узлов, поэтому может быть несколько точек отказа
  • Сообщения могут быть потеряны в сети связи, для восстановления которой требуется специальное программное обеспечение.

Резюме

  • Распределенное приложение — это приложение, которое может работать на нескольких системах в сети
  • Apache Zookeeper — это сервис распределенной координации с открытым исходным кодом, который помогает вам управлять большим набором хостов
  • Это позволяет взаимное исключение и сотрудничество между процессами сервера
  • Сервер, Клиент, Лидер, Последователь, Ансамбль / Кластер, ZooKeeper WebUI — важные компоненты Zookeeper
  • Три типа Znodes: постоянство, эфемерный и последовательный
  • Часы ZDM — это одноразовый триггер, который отправляется клиенту, который установил часы. Это произошло, когда данные из этих часов изменились
  • Zookeeper использует ACL для управления доступом к своим znodes
  • Управление конфигурацией, службы именования, выбор лидера, постановка в очередь сообщений, управление системой уведомлений, синхронизация, управление распределенным кластером и т. Д.
  • Yahoo, Facebook, eBay, Twitter, Netflix — некоторые известные компании, использующие zookeeper
  • Основным недостатком инструмента является то, что потеря может произойти, если вы добавляете новые серверы Zookeeper