Учебное пособие по ZooKeeper: Что такое, Archiзащита Apache ZooKeeper

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

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

Что такое Зоокипер?

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

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

Почему Apache Zookeeper?

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

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

Работник зоопарка Archiтектура: Как это работает?

Вот краткое объяснение о Apache Архитектура Zookeeper:

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

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

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

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

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

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

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

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

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

Теперь в этом уроке ZooKeeper давайте узнаем о модели данных Zookeeper. На рисунке ниже поясняется модель данных Apache Zookeeper:

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

Типы узлов Zookeeper

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

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

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

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

ZDM- Часы

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

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

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

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

Встроить схемы ACL:

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

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

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

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

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

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

  • СОЗДАТЬ
  • ЧИТАТЬ
  • ПИШИТЕ
  • УДАЛИТЬ
  • ADMIN

Пример (IP: 192.168.0.0/16, ЧТЕНИЕ)

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

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

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

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

Установить ZooKeeper

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

Установить ZooKeeper

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

Установить ZooKeeper

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

Установить ZooKeeper

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

Установить ZooKeeper

Шаг 6) Поздравляем!
Вы сделали!

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

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

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

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

  • Yahoo
  • Facebook
  • eBay
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

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

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

Итого

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