Apache ZooKeeper

Система распределенной координации
Apache ZooKeeper
Разработчик(и)Фонд программного обеспечения Apache
Стабильный релиз
3.8.1 / 30 января 2023 г. ; 20 месяцев назад [1] ( 2023-01-30 )
РепозиторийРепозиторий ZooKeeper
Написано вЯва
Операционная системаКроссплатформенный
ТипРаспределенные вычисления
ЛицензияЛицензия Apache 2.0
Веб-сайтzookeeper.apache.org

Apache ZooKeeper — сервер с открытым исходным кодом для высоконадежной распределенной координации облачных приложений. [2] Это проект Apache Software Foundation .

ZooKeeper по сути является сервисом для распределенных систем , предлагающим иерархическое хранилище ключей и значений , которое используется для предоставления распределенного сервиса конфигурации , сервиса синхронизации и реестра имен для больших распределенных систем (см. Примеры использования ). [3] ZooKeeper был подпроектом Hadoop , но теперь является самостоятельным проектом Apache верхнего уровня .

Обзор

Архитектура ZooKeeper поддерживает высокую доступность за счет избыточных служб . Таким образом, клиенты могут обратиться к другому лидеру ZooKeeper, если первый не отвечает. Узлы ZooKeeper хранят свои данные в иерархическом пространстве имен, похожем на файловую систему или древовидную структуру данных. Клиенты могут читать и писать на узлы и, таким образом, иметь общую службу конфигурации. ZooKeeper можно рассматривать как атомарную систему вещания , через которую обновления полностью упорядочиваются . Протокол ZooKeeper Atomic Broadcast (ZAB) является ядром системы. [4]

ZooKeeper используется такими компаниями, как Yelp , Rackspace , Yahoo !, [5] Odnoklassniki , Reddit , [6] NetApp SolidFire , [7] Meta , [8] Twitter [9] и eBay, а также системами корпоративного поиска с открытым исходным кодом , такими как Solr , и распределенными системами баз данных, такими как Apache Pinot . [10] [11]

ZooKeeper смоделирован по образцу сервиса блокировки Chubby от Google [12] [13] и изначально был разработан в Yahoo! для оптимизации процессов, работающих на кластерах больших данных, путем сохранения статуса в локальных файлах журналов на серверах ZooKeeper. Эти серверы взаимодействуют с клиентскими машинами, чтобы предоставить им информацию. ZooKeeper был разработан для исправления ошибок, которые возникали при развертывании распределенных приложений больших данных.

Некоторые из основных функций Apache ZooKeeper:

  • Надежная система: эта система довольно надежна, поскольку она продолжает работать даже в случае выхода из строя некоторых узлов.
  • Простая архитектура: Архитектура ZooKeeper довольно проста, поскольку имеется общее иерархическое пространство имен, которое помогает координировать процессы.
  • Быстрая обработка: ZooKeeper особенно быстр в рабочих нагрузках с преобладанием чтения (т. е. рабочих нагрузках, в которых чтение встречается гораздо чаще, чем запись).
  • Масштабируемость: производительность ZooKeeper можно улучшить, добавляя узлы.

Архитектура

Некоторые общие термины, касающиеся архитектуры ZooKeeper:

  • Узел: Системы, установленные на кластере
  • ZNode: Узлы, где статус обновляется другими узлами в кластере.
  • Клиентские приложения: инструменты, взаимодействующие с распределенными приложениями.
  • Серверные приложения: позволяют клиентским приложениям взаимодействовать с помощью общего интерфейса.

Службы в кластере реплицируются и хранятся на наборе серверов (называемых «ансамблем»), каждый из которых поддерживает базу данных в памяти, содержащую все дерево данных состояния, а также журнал транзакций и снимки, которые хранятся постоянно. Несколько клиентских приложений могут подключаться к серверу, и каждый клиент поддерживает TCP-соединение, через которое он отправляет запросы и сигналы, получает ответы и отслеживает события для мониторинга. [14]

Варианты использования

Типичные варианты использования ZooKeeper:

Клиентские библиотеки

Помимо клиентских библиотек, входящих в дистрибутив ZooKeeper, доступен ряд сторонних библиотек, таких как Apache Curator и Kazoo, которые упрощают использование ZooKeeper, добавляют дополнительные функции, дополнительные языки программирования и т. д.

Проекты Apache с использованием ZooKeeper

Смотрите также

Ссылки

  1. ^ "Apache ZooKeeper - Releases" . Получено 12 февраля 2023 г. .
  2. ^ "Apache Zookeeper4" . Получено 31 января 2021 г. .
  3. ^ "Индекс - Apache ZooKeeper - Apache Software Foundation". cwiki.apache.org . Получено 2016-08-26 .
  4. ^ «Обзор Zookeeper».
  5. ^ "ZooKeeper/Powered By". Архивировано из оригинала 2013-12-09 . Получено 2012-01-25 .
  6. ^ «Почему Reddit был недоступен 11 августа». 16 августа 2016 г.
  7. ^ "5 больших проблем DaaS и как их преодолеть | NetApp Newsroom". NetApp Newsroom . 2016-06-20 . Получено 24-05-2017 .[ постоянная мертвая ссылка ]
  8. ^ «Распределение с учетом местоположения: настройка серверов в масштабе». Facebook Code . 2018-07-19 . Получено 2018-07-20 .
  9. ^ "ZooKeeper в Twitter". Twitter Engineering Blog . 2018-10-11 . Получено 2018-12-08 .
  10. ^ "SolrCloud".
  11. ^ «Апач Пино: Архитектура».
  12. ^ Берроуз, Майк (2006). «Служба блокировки Chubby для слабосвязанных распределенных систем». 7-й симпозиум USENIX по проектированию и внедрению операционных систем (OSDI) .
  13. ^ Чандра, Тушар Дипак; Гриземер, Роберт; Редстоун, Джошуа (2007). «Paxos Made Live — инженерная перспектива (приглашенная лекция 2006 года)». Google Research . Получено 2020-03-03 .
  14. ^ «Смотритель зоопарка».
  • Официальный сайт
Взято с "https://en.wikipedia.org/w/index.php?title=Apache_ZooKeeper&oldid=1181681735"