Урок за ZooKeeper

Какво е разпределена система?

Разпределеното приложение е приложение, което може да работи на множество системи в мрежа. Той работи едновременно, като се координират, за да изпълнят определена задача. Изпълнението на тези задачи може да отнеме много часове от всяко неразпространено приложение.

Какво е Zookeeper?

Apache Zookeeper е услуга за разпределена координация с отворен код, която помага да се управлява голям набор от хостове. Управлението и координацията в разпределена среда са трудни. Zookeeper автоматизира този процес и позволява на разработчиците да се съсредоточат върху изграждането на софтуерни функции, вместо да се тревожат за неговия разпределен характер.

Zookeeper ви помага да поддържате информация за конфигурацията, именуване, групови услуги за разпределени приложения. Той прилага различни протоколи в клъстера, така че приложението не трябва да се прилага самостоятелно. Той осигурява единен съгласуван изглед на множество машини.

Защо Apache Zookeeper?

Ето важните причини за популярността на Zookeeper:

  • Той позволява взаимно изключване и сътрудничество между сървърните процеси
  • Той гарантира, че вашето приложение работи последователно.
  • Процесът на транзакция никога не е завършен частично. Дава му се статус на успех или неуспех. Разпределеното състояние може да бъде задържано, но никога не е грешно
  • Независимо от сървъра, към който се свързва, клиентът ще може да вижда същия изглед на услугата
  • Помага ви да кодирате данните според специфичния набор от правила
  • Помага да се поддържа стандартно йерархично пространство от имена, подобно на файлове и директории
  • Компютри, които работят като единна система, която може да бъде свързана локално или географски
  • Позволява присъединяване/напускане на възел в клъстер и състояние на възел в реално време
  • Можете да увеличите производителността, като разположите повече машини
  • Позволява ви да изберете възел като лидер за по-добра координация
  • ZooKeeper работи бързо с работни натоварвания, при които четенето на данни е по-често срещано от записването

ZooKeeper Architecture: Как работи?

Ето кратко обяснение за Apache Архитектура на Zookeeper:

  • Zookeeper следва клиент-сървър Archiтекстура
  • Всички системи съхраняват копие на данните
  • Лидерите се избират при стартиране
Archiструктура на ZooKeeper
Archiструктура на ZooKeeper

Сървър: Сървърът изпраща потвърждение, когато всеки клиент се свърже. В случай, че няма отговор от свързания сървър, клиентът автоматично пренасочва съобщението към друг сървър.

Удовлетвореност: Клиентът е един от възлите в клъстера на разпределените приложения. Помага ви за достъп до информация от сървъра. Всеки клиент изпраща съобщение до сървъра на редовни интервали, което помага на сървъра да знае, че клиентът е жив.

Ръководител: Един от сървърите е определен за лидер. Той дава цялата информация на клиентите, както и потвърждение, че сървърът е жив. Той ще извърши автоматично възстановяване, ако някой от свързаните възли се повреди.

Последовател: Сървърният възел, който следва инструкциите на лидера, се нарича последовател.

  • Клиентските заявки за четене се обработват от съответно свързания Zookeeper сървър
  • Заявките за писане на клиента се обработват от лидера на Zookeeper.

Ансамбъл/Cluster: Група от сървъри Zookeeper, която се нарича ансамбъл или a Cluster. Можете да използвате инфраструктурата на ZooKeeper в режим на клъстер, за да поддържате системата на оптимална стойност, когато работите с Apache.

ZooKeeper WebUI: Ако искате да работите с управлението на ресурсите на ZooKeeper, тогава трябва да използвате потребителски уеб интерфейс. Позволява работа със ZooKeeper чрез уеб потребителския интерфейс, вместо да използвате командния ред. Предлага бърза и ефективна комуникация с приложението ZooKeeper.

Моделът на данните Zookeeper (ZDM)

Сега в този урок за ZooKeeper, нека научим за модела на данни Zookeeper. Фигурата по-долу обяснява модела на данни на Apache Zookeeper:

Моделът на данните Zookeeper
Модел на данни Zookeeper
  • Моделът на данни zookeeper следва йерархично пространство от имена, където всеки възел се нарича ZNode. Възелът е система, в която работи клъстерът.
  • Всеки ZNode има данни. Може да има или да няма деца
  • ZNode пътища:
    • Каноничен, разделен с наклонена черта и абсолютен
    • Не използвайте относителни препратки
    • Имената могат да имат Unicode знаци
  • ZNode поддържа структура на статистика и номер на версия за промени в данните.

Видове възли Zookeeper

Има три типа Znodes:

Постоянство znode: Този тип znode е активен дори след като клиентът, който е създал този конкретен znode, е прекъснат. По подразбиране в zookeeper всички възли са постоянни, ако не е посочено.

ефимерен znode: Този тип znode на zookeeper са живи, докато клиентът е жив. Следователно, когато клиентът получи прекъсване на връзката със zookeeper, той също ще бъде изтрит. Освен това на ефимерните възли не е позволено да имат деца.

Следващ znode: Последователните znode могат да бъдат или ефимерни, или постоянни. Така че, когато се създаде нов znode като последователен znode. Можете да зададете пътя на znode, като прикачите 10-цифрен пореден номер към оригиналното име.

ZDM- Часовници

Zookeeper, събитието за наблюдение е еднократно задействане, което се изпраща на клиента, който е задал наблюдение. Възникна при промяна на данните от този часовник. ZDM часовникът позволява на клиентите да получават известия, когато znode се промени. Съществуват операции за четене на ZDM като getData(), getChidleren(), които имат опция за настройка на часовник.

Часовете се подреждат, редът на събитията за гледане съответства на реда на актуализациите. Клиентът ще може да види събитие за гледане за znode, преди да види новите данни, които съответстват на този znode.

ZDM- списък за контрол на достъпа

Zookeeper използва ACL, за да контролира достъпа до своите znodes. ACL се състои от двойка (схема: id, разрешение)

Вграждане на ACL схеми:

свят: има един идентификатор, всеки

auth: Не използва никакъв идентификатор, представлява всеки удостоверен потребител

дайджест: използвайте потребителско име: парола

хост: Позволява ви да използвате името на хоста на клиента като идентичност на ACL id

IP: използвайте IP адреса на клиентския хост като идентичност на ACL id

ACL разрешения:

  • CREATE
  • ПРОЧЕТИ
  • Моля, пишете на
  • ИЗТРИЙ
  • Документи

Пример (IP: 192.168.0.0/16, ПРОЧЕТЕТЕ)

ZKS – състояния на сесията и продължителност на живота

ZKS – състояния на сесията
ZKS – състояния на сесията
  • Преди да изпълни каквато и да е заявка, важно е клиентът да установи сесия с услуга
  • Всички операции на клиентите, изпратени до услугата, автоматично се свързват със сесия
  • Клиентът може да се свърже с всеки сървър в клъстера. Но ще се свърже само с един сървър
  • Сесията предоставя „гаранции за поръчка“. Заявките в сесията се изпълняват във FIFO ред
  • Основните състояния за една сесия са 1) Свързване, 2) Свързано 3) Затворено 4) Не е свързано.

Как да инсталирате ZooKeeper

Стъпка 1) Кликнете върху Продължете, за да се абонирате
Преминете към това връзка и щракнете върху „Продължете да се абонирате“

Инсталирайте ZooKeeper

Стъпка 2) Приемете Общите условия
На следващата страница приемете лицензионното споразумение

Инсталирайте ZooKeeper

Стъпка 3) Показано е благодарствено съобщение
Ще видите следното съобщение

Инсталирайте ZooKeeper

Стъпка 4) Щракнете върху Продължете към конфигуриране
Обновете страницата след 5 минути и продължете към конфигуриране

Инсталирайте ZooKeeper

Стъпка 5) Кликнете върху „Продължи към стартиране“
На следващия екран стартирайте ZooKeeper

Инсталирайте ZooKeeper

Стъпка 6) Поздравления!
Ти си готов!

Приложения Apache ZooKeeper

Apache Zookeeper се използва за следните цели:

  • Управление на конфигурацията
  • Услуги за именуване
  • Избор на лидера
  • Подреждане на съобщенията в опашка
  • Управление на системата за уведомяване
  • Syncхронизация
  • Разпределени Cluster управление

Компании, използващи Zookeeper

  • Yahoo
  • Facebook
  • иБей
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

Недостатъци при използването на Zookeeper

  • Може да възникне загуба на данни, ако добавяте нови Zookeeper сървъри
  • Не е разрешена миграция за потребители
  • Не предлага поддръжка за поставяне и осведоменост в Rack
  • Zookeeper не ви позволява да намалите броя на подовете, за да предотвратите случайна загуба на данни
  • Не можете да превключите услуга към мрежа на хост без пълно преинсталиране, когато услугата е разгърната във виртуална мрежа
  • Услугата не поддържа промяна на изискванията за обем след приключване на първоначалното внедряване
  • Има голям брой включени възли, така че може да има повече от една точка на повреда
  • Съобщенията могат да бъдат загубени в комуникационната мрежа, което изисква специален софтуер за възстановяването им отново

Oбобщение

  • Разпределеното приложение е приложение, което може да работи на множество системи в мрежа
  • Apache Zookeeper е услуга за разпределена координация с отворен код, която ви помага да управлявате голям набор от хостове
  • Той позволява взаимно изключване и сътрудничество между сървърните процеси
  • Сървър, Клиент, Лидер, Последовател, Ансамбъл/Cluster, ZooKeeper WebUI са важни компоненти на zookeeper
  • Три вида Znodes са Persistence, Ephemeral и sequential
  • ZDM watch е еднократно задействане, което се изпраща на клиента, който е задал часовника. Възникна при промяна на данните от този часовник
  • Zookeeper Hadoop използва ACL, за да контролира достъпа до своите znodes
  • Управление на конфигурацията, Услуги за именуване, избор на лидер, Подреждане на съобщенията, Управление на системата за уведомяване, Syncхронизация, Разпространен Cluster Управление и др.
  • Yahoo, Facebook, eBay, Twitter, Netflix някои известни компании използват zookeeper
  • Основният недостатък на инструмента е, че може да възникне загуба, ако добавяте нови Zookeeper сървъри