Хранитель зоопарка Апач
![]() | |
Разработчик(и) | Фонд программного обеспечения Apache |
---|---|
Стабильная версия | 3.8.1 / 30 января 2023 г [1] |
Репозиторий | Репозиторий ZooKeeper |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | Распределенные вычисления |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | смотритель зоопарка |
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] Мета , [8] Твиттер [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
[ редактировать ]- Апач Хадуп
- Накопление Apache
- Апач HBase
- Улей Апачей
- Апач Кафка
- Апач Дрель
- Апач Солр
- Апач Спарк
- Апач НиФи
- Апач Друид
- Апач Хеликс
- Апач Пино
- Апач-бухгалтер
- Апач Пульсар
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Apache ZooKeeper — Релизы» . Проверено 12 февраля 2023 г.
- ^ «Apache Zookeeper4» . Проверено 31 января 2021 г.
- ^ «Индекс — Apache ZooKeeper — Apache Software Foundation» . cwiki.apache.org . Проверено 26 августа 2016 г.
- ^ «Обзор зоопарка» .
- ^ «ZooKeeper/При поддержке» . Архивировано из оригинала 9 декабря 2013 г. Проверено 25 января 2012 г.
- ^ «Почему Reddit не работал 11 августа» . 16 августа 2016 г.
- ^ «5 больших проблем DaaS и способы их преодоления | Отдел новостей NetApp» . Отдел новостей NetApp . 20 июня 2016 г. Проверено 24 мая 2017 г. [ постоянная мертвая ссылка ]
- ^ «Распределение с учетом местоположения: масштабируемая настройка серверов» . Код Фейсбука . 19 июля 2018 г. Проверено 20 июля 2018 г.
- ^ «ZooKeeper в Твиттере» . Инженерный блог в Твиттере . 11 октября 2018 г. Проверено 8 декабря 2018 г.
- ^ «СолрКлауд» .
- ^ «Апач Пино: Архитектура» .
- ^ Берроуз, Майк (2006). «Служба блокировки Chubby для слабосвязанных распределенных систем» . 7-й симпозиум USENIX по проектированию и внедрению операционных систем (OSDI) .
- ^ Чандра, Тушар Дипак; Гриземер, Роберт; Редстоун, Джошуа (2007). «Паксос стал живым — инженерная перспектива (приглашенный доклад 2006 г.)» . Google Исследования . Проверено 3 марта 2020 г.
- ^ «Зоопарковщик» .