Вопрос

Я пытаюсь понять зоофирку, как это работает и что это делает. Есть ли приложение, которое сопоставимо с зоофильем?

Если вы знаете, то как бы вы описали зоопарк к мируману?

Я пробовал Apache Wiki, Zookeeper SourceForge ... но я все еще не могу относиться к нему.

Я просто читал через http://zookeeper.sourceforge.net/index.sf.shtml., Таким образом, нет больше таких услуг? Это так просто, как просто воспроизведение сервера?

Это было полезно?

Решение

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

Как это работает

Вы можете описать Zookeeper в качестве реплицированной службы синхронизации с возможной согласованностью. Он надежный, поскольку сохраняемые данные распределяются между несколькими узлами (этот набор узлов называется «ансамбль»), и один клиент соединяется с любым из них (т. Е. Специфическим «сервером»), мигрирующим, если один узел не удается; Пока работает строгое большинство узлов, ансамбль узлов зоофиторов жив. В частности, главный узел динамически выбирается консенсусом в пределах ансамбля; Если главный узел не удается, роль мастера мигрирует на другой узел.

Как пишет обрабатываются

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

Гарантия линейных пишеств является причиной того факта, что зоофиркутер не работает хорошо для доминирующих на пишу рабочих нагрузок. В частности, он не должен использоваться для обмена больших данных, таких как СМИ. Пока ваше сообщение включает в себя общие данные, Zookeeker поможет вам. Когда данные могут быть написаны одновременно, Zookeeker фактически вступает в путь, потому что он налагает строгое упорядочение операций, даже если он не является строго необходимым с точки зрения писателей. Его идеальное использование для согласования, где сообщения обмениваются между клиентами.

Как прочитаны

Это где Zookeeper Excels: чтения являются одновременными, поскольку они обслуживаются конкретным сервером, к которому клиент подключается к. Однако это также причина для возможной согласованности: «View» клиента может быть устаревшим, поскольку основной обновляет соответствующий сервер с ограниченной, но не определенной задержкой.

В деталях

Реплицированная база Zookeeker содержит дерево znodes., которые являются объектами примерно представляющими узлы файловых систем (думают о них как о каталогах). Каждый Znode может быть обогащен байтовым массивом, который хранит данные. Кроме того, каждый Znode может иметь другие Znodes под нем, практически формируя внутреннюю систему каталогов.

Последовательные Znodes.

Интересно, что имя Znode может быть последовательный, Значит, что имя клиент предусматривает при создании Znode, является только префиксом: полное имя также дается последовательным номером, выбранным ансамблем. Это полезно, например, для целей синхронизации: если несколько клиентов хотят получить блокировку на ресурсе, они могут одновременно создавать последовательный Znode в месте: тот, кто получает самый низкий номер, имеет право на блокировку.

Эфемерные зноды

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

Часы

Пример, связанный с отключением клиента, может быть проблематичным, если нам нужно периодически опрос состояния ZNODES. К счастью, Zookeeker предлагает систему событий, где смотреть Может быть установлен на Znode. Эти часы могут быть установлены для срабатывания события, если Znode специально изменен или удален, или новых детей создаются под ним. Это явно полезно в сочетании с последовательными и эфемеральными вариантами для Znodes.

Где и как его использовать

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

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

Zookeeper - это светлый свет, что означает, что такие механизмы, как лидерные выборы, замки, барьеры и т. Д., Уже не присутствуют, но могут быть написаны выше примитивы зоопарка. Если C / Java API слишком громоздкой для ваших целей, вы должны полагаться на библиотеки, построенные на зоопакетеке, например клетки и особенно куратор.

Где Подробнее

Официальная документация отдельно, что довольно хорошо, я предлагаю прочитать главу 14 Hadoop: окончательное руководство У кого ~ 35 страниц, объясняющих, по существу, каким зоофитором следует пример службы конфигурации.

Другие советы

Zookeeper - один из лучших открытых исходных серверов и обслуживания, который помогает надежно координировать распределенные процессы. Zookeeper - это система CP (см. Теорема Cap), которая обеспечивает согласованность и толерантность разбиения. Репликация состояния зоофионеров по всем узлам делает его в конечном итоге последовательным распределенным обслуживанием.

Более того, любой недавно избранный лидер будет обновлять свои последователи с пропавшими предложениями или с моментальным снижением государства, если последователи много предложений отсутствуют.

Zookeeper также предоставляет API, который очень прост в использовании. Этот блог пост, Zookeeper Java API Примеры, Есть несколько примеров, если вы ищете примеры.

Так где мы используем это? Если ваша распределенная служба нуждается в централизованной, надежной и последовательной конфигурации, блокировки, очереди и т. Д., Вы найдете Zookeeper, надежный выбор.

Я понимаю зоопарк в целом, но имел проблемы с терминами «кворума» и «разбитый мозг», так что, возможно, я могу поделиться своими выводами с вами (я считаю себя также непродовольственным.

Скажем, у нас есть зоофирмер кластер из 5 серверов. Один из серверов станет лидером, а остальные станут последователями.

  • Эти 5 серверов образуют кворум. Кворум просто означает «эти серверы могут голосовать на том, кто должен быть лидером».

  • Таким образом, голосование основано на большинстве. Большинство просто означает «более половины», поэтому более половины количества серверов должны согласиться на конкретный сервер, чтобы стать лидером.

  • Таким образом, есть эта плохая вещь, которая может произойти назвать «разделенный мозг». Сплит мозга просто это, насколько я понимаю: кластер из 5 серверов разбивается на две части, или давайте назовем его «серверные команды», может быть, одна часть 2 и другой из 3 серверов. Это действительно плохая ситуация, как если бы как «серверные команды» должны выполнить определенный заказ, как бы вы решаете, что команда, которую нужно предпочтительнее? Они могли бы получить разную информацию от клиентов. Таким образом, действительно важно знать, что «серверная команда» все еще актуальна, и какой можно / следует игнорировать.

  • Большинство также является причиной, по которой вы должны использовать нечетное количество серверов. Если у вас есть 4 сервера и разделенный мозг, где 2 сервера отделяют, то оба «серверные команды» могут сказать «Эй, мы хотим решить, кто является лидером!» Но как вы должны решить, какие 2 сервера вы должны выбрать? С 5 серверами простым: серверная команда с 3 серверами имеет большинство и разрешено выбирать новый лидер.

  • Даже если у вас просто есть 3 сервера, и один из них не удается другой 2, все еще формирует большинство и может согласиться с тем, что один из них станет новым лидером.

Я понимаю, что когда вы думаете о нем некоторое время и понимаете термины, которые больше не так сложно. Я надеюсь, что это также помогает кому-либо в понимании этих терминов.

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

Больше информации

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top