Разработчик (и) | Apache Software Foundation |
---|---|
Стабильный выпуск | 3.6.1 / 30 апреля 2020 г.; 5 месяцев назад (30.04.2020) |
Репозиторий | Репозиторий ZooKeeper |
Написано на | Java |
Операционная система | Кросс-платформенная |
Тип | Распределенные вычисления |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | zookeeper.apache.org |
Apache ZooKeeper - это программный проект Apache Software Foundation. По сути, это сервис для распределенных систем, предлагающий иерархическое хранилище ключей и значений, которое используется для предоставления распределенного служба конфигурации, служба синхронизации и реестр имен для больших распределенных систем (см. Примеры использования). ZooKeeper был подпроектом Hadoop, но теперь сам по себе является проектом Apache верхнего уровня.
Архитектура ZooKeeper поддерживает высокую доступность через избыточные службы. Таким образом, клиенты могут спросить другого лидера ZooKeeper, если первый не отвечает. Узлы ZooKeeper хранят свои данные в иерархическом пространстве имен, во многом как файловая система или структура данных tree. Клиенты могут читать и записывать на узлы и, таким образом, иметь общую службу конфигурации. ZooKeeper можно рассматривать как систему атомарного вещания, через которую обновления полностью упорядочиваются. Протокол ZooKeeper Atomic Broadcast (ZAB) является ядром системы.
ZooKeeper используется такими компаниями, как Yelp, Rackspace, Yahoo!, Одноклассники, Reddit,NetApp SolidFire, Facebook, Twitter и eBay, а также поисковые системы с открытым исходным кодом поисковые системы, такие как Solr.
ZooKeeper по образцу службы блокировки Google Chubby и первоначально были разработаны в Yahoo! для оптимизации процессов, выполняемых в кластерах больших данных, путем сохранения статуса в локальных файлах журнала на серверах ZooKeeper. Эти серверы связываются с клиентскими машинами, чтобы предоставить им информацию. ZooKeeper был разработан для исправления ошибок, возникающих при развертывании распределенных приложений для работы с большими данными.
Некоторые из основных характеристик Apache ZooKeeper:
Некоторые общие термины, касающиеся архитектуры ZooKeeper:
Сервисы в кластере реплицируются и хранятся на множестве серверов (называемых «ансамблем»), каждый из которых поддерживает базу данных в памяти, содержащую все дерево данных состояния, а также журнал транзакций и постоянно хранимые моментальные снимки. Несколько клиентских приложений могут подключаться к серверу, и каждый клиент поддерживает TCP-соединение, через которое он отправляет запросы и контрольные сообщения, а также получает ответы и отслеживает события для мониторинга.
Типичные варианты использования для ZooKeeper:
В дополнение к клиентским библиотекам Включенный в дистрибутив ZooKeeper, доступен ряд сторонних библиотек, таких как Apache Curator и Kazoo, которые упрощают использование ZooKeeper, добавляют дополнительные функции, дополнительные языки программирования и т. д.