Использование Zookeeper в реальном мире

Недавно я смотрел Zookeeper и задавался вопросом, использовал ли кто-нибудь его в настоящее время и что конкретно они использовали для его хранения.

Наиболее распространенным вариантом использования является информация о конфигурации, но какие данные и сколько данных вы храните?

Ответ 1

Apache CXF реализация DOSGi использует zookeeper для своего репозитория регистрации сервисов. В отдельных контейнерах имеется комплект распределенного программного обеспечения (dsw), который прослушивает все события службы и когда изменяется статус службы, у которого есть свойство, указывающее на распределение. ДВС говорит о пакете обнаружения, который в случае ссылочной реализации использует zookeeper для хранения службы как эфемерных узлов. Другие экземпляры будут искать изменения в структуре node и регистрировать прокси в своих локальных системах. Конечным результатом является то, что вы можете закодировать до простой OSGi и в итоге получить прозрачный дистрибутив.

Ответ 2

HBase использует Zookeeper для координации действий, для которой "head node" отвечал до текущей версии. Переход на использование Zookeeper означает, что центральный элемент управления больше не является единственной точкой отказа.

Zookeeper очень универсален; вот пример его использования для создания распределенной параллельной очереди:

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/

Вы также можете использовать его для создания блокировок ресурсов и т.д. в распределенной системе.

Ответ 3

Старый вопрос, но так как эта страница появляется сначала в поиске google для использования для использования в zookeeper, я полагал, что было бы лучше дать обновленный список

Ответ 4

Проекты свободного программного обеспечения Работает на ZooKeeper:

Apache Projects Работает на ZooKeeper:

Источник: https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy

Ответ 5

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

При каждом запуске экземпляра службы Norbert регистрирует его как доступный экземпляр определенного типа службы. С точки зрения реализации он создает два дерева Zookeeper:

  • "/ServiceName/members", в котором перечислены все известные экземпляры службы
  • "/ServiceName/available", в котором перечислены доступные в настоящий момент экземпляры службы

Наиболее важным свойством для каждого node является URL-адрес, используемый для подключения к соответствующему экземпляру службы. Он позволяет балансировать нагрузку на стороне клиента - клиент Norbert находит список URL-адресов для данного имени службы и пытается подключиться к одному из них - это некоторый порядок (например, циклический или случайный).

Ответ 6

Solr также работает для интеграции ZooKeeper. Здесь вы можете увидеть, что они используют для динамического конфигурирования, ошпаривания, исключения SPOF (выборы хозяина/раба), перебалансировки и т.д.

Ответ 8

  • Storm используется количество компаний (Twitter и Groupon являются двумя из наиболее известных) и полагаются на Zookeeper.
  • Kafka используется Linkedin и полагается на Zookeeper.

Storm использует Zookeeper для хранения всего состояния, чтобы он мог восстановить из-за отключения в любой из своих (распределенных) компонентных сервисов.

Это позволяет службам компонентов быть без гражданства и просто загружать или синхронизировать с серверами Zookeeper, когда необходимы данные конфигурации. Если вам когда-либо приходилось восстанавливать производственный сервер, вы узнаете, что такое головная боль!

Kafka потребители очереди могут использовать Zookeeper для хранения информации (знак высокой воды) о том, что было израсходовано из очереди.

Ответ 9

Zookeeper использовался для многих других целей, кроме конфигурации. Вот официальный список внедренных распределенных примитивов с использованием zookeeper.

https://zookeeper.apache.org/doc/current/recipes.html

Ответ 10

В моем случае мы сохраняем файлы конфигурации в ансамбле zookeeper для использования кластеров. Мы используем схему лидеров → последователей. Поэтому, когда один zookeeper вниз, мы переключаемся на другой (реплицированный режим)

Ответ 11

Я не знаю специфики того, как он используется, но я знаю, что последняя версия HBase (с открытым исходным кодом BigTable) использует ZooKeeper.

Ответ 13

datomic использует apache zookeeper для управления хранилищем данных на основе riak.

Поскольку Riak поддерживает только конечную согласованность в это время, система Datomic, работающая на Riak, также использует Apache ZooKeeper, высокодоступную службу координации. Datomic использует ZooKeeper для координации отказа от транзакций и для нескольких ключей на базу данных, которые необходимо обновить с помощью CAS. источник: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html

Ответ 14

Здесь подробно описано, как HBase использует ZooKeeper, включая информацию о том, как они намерены использовать его в будущем. Как правило, они используют его для устранения SPOF на серверах региона посредством выборов Лидера, реализованных с использованием ZooKeeper.

Ответ 15

Zookeeper не для хранения данных, а только для хранения узлов. Он используется для проверки доступности клиента или нет.