Samouczek ZooKeeper

Co to jest system rozproszony?

Aplikacja rozproszona to aplikacja, ktรณra moลผe dziaล‚aฤ‡ na wielu systemach w sieci. Dziaล‚a jednoczeล›nie, koordynujฤ…c siฤ™, aby wykonaฤ‡ okreล›lone zadanie. Zadania te mogฤ… zajฤ…ฤ‡ wiele godzin, aby wykonaฤ‡ dowolnฤ… nierozproszonฤ… aplikacjฤ™.

Co to jest Zookeeper?

Straลผnik Apaczรณw to rozproszona usล‚uga koordynacji typu open source, ktรณra pomaga zarzฤ…dzaฤ‡ duลผฤ… liczbฤ… hostรณw. Zarzฤ…dzanie i koordynacja w ล›rodowisku rozproszonym jest trudna. Zookeeper automatyzuje ten proces i pozwala programistom skoncentrowaฤ‡ siฤ™ na tworzeniu funkcji oprogramowania, zamiast martwiฤ‡ siฤ™ jego rozproszonym charakterem.

Zookeeper pomaga Ci utrzymaฤ‡ informacje o konfiguracji, nazewnictwie, usล‚ugach grupowych dla rozproszonych aplikacji. Implementuje rรณลผne protokoล‚y w klastrze, aby aplikacja nie musiaล‚a implementowaฤ‡ ich samodzielnie. Zapewnia jeden spรณjny widok wielu maszyn.

Dlaczego Apache Zookeeper?

Oto waลผne powody popularnoล›ci Zookeepera:

  • Umoลผliwia wzajemne wykluczanie i wspรณล‚pracฤ™ pomiฤ™dzy procesami serwerowymi
  • Zapewnia spรณjne dziaล‚anie aplikacji.
  • Proces transakcji nigdy nie jest zakoล„czony czฤ™ล›ciowo. Nadawany jest mu status Sukcesu lub Poraลผki. Stan rozproszony moลผna utrzymaฤ‡, ale nigdy nie jest ลบle
  • Niezaleลผnie od tego, z jakim serwerem siฤ™ ล‚ฤ…czy, klient bฤ™dzie mรณgล‚ zobaczyฤ‡ ten sam widok usล‚ugi
  • Pomaga kodowaฤ‡ dane zgodnie z okreล›lonym zestawem reguล‚
  • Pomaga zachowaฤ‡ standardowฤ… hierarchicznฤ… przestrzeล„ nazw podobnฤ… do plikรณw i katalogรณw
  • Komputery dziaล‚ajฤ…ce jako pojedynczy system, ktรณry moลผna ล‚ฤ…czyฤ‡ lokalnie lub geograficznie
  • Umoลผliwia doล‚ฤ…czanie/opuszczanie wฤ™zล‚รณw w klastrze oraz sprawdzanie statusu wฤ™zล‚รณw w czasie rzeczywistym
  • Moลผesz zwiฤ™kszyฤ‡ wydajnoล›ฤ‡, wdraลผajฤ…c wiฤ™cej maszyn
  • Pozwala wybraฤ‡ wฤ™zeล‚ jako lidera dla lepszej koordynacji
  • ZooKeeper dziaล‚a szybko z obciฤ…ลผeniami, w ktรณrych odczyty danych sฤ… czฤ™stsze niลผ zapisy

Opiekun zoo Architecture: Jak to dziaล‚a?

Oto krรณtkie wyjaล›nienie dot Apache Architektura Zookeepera:

  • Zookeeper podฤ…ลผa za klientem-serwerem Architektura
  • Wszystkie systemy przechowujฤ… kopiฤ™ danych
  • Liderzy sฤ… wybierani na poczฤ…tku
Architecture ZooKeepera
Architecture ZooKeepera

serwer: Serwer wysyล‚a potwierdzenie, gdy dowolny klient siฤ™ poล‚ฤ…czy. W przypadku braku odpowiedzi z podล‚ฤ…czonego serwera klient automatycznie przekierowuje wiadomoล›ฤ‡ na inny serwer.

klientem: Klient jest jednym z wฤ™zล‚รณw w rozproszonym klastrze aplikacji. Pomaga uzyskaฤ‡ dostฤ™p do informacji z serwera. Kaลผdy klient wysyล‚a wiadomoล›ฤ‡ do serwera w regularnych odstฤ™pach czasu, co pomaga serwerowi dowiedzieฤ‡ siฤ™, ลผe klient jest aktywny.

Lider: Jeden z serwerรณw jest wyznaczony jako Lider. Daje wszystkie informacje klientom, a takลผe potwierdzenie, ลผe serwer dziaล‚a. Przeprowadzi automatyczne odzyskiwanie, jeล›li ktรณrykolwiek z podล‚ฤ…czonych wฤ™zล‚รณw ulegnie awarii.

Zwolennik: Wฤ™zeล‚ serwera, ktรณry wykonuje instrukcje lidera, nazywany jest naล›ladowcฤ….

  • ลปฤ…dania odczytu klienta sฤ… obsล‚ugiwane przez odpowiednio podล‚ฤ…czony serwer Zookeeper
  • ลปฤ…dania zapisywane przez klienta sฤ… obsล‚ugiwane przez lidera Zookeepera.

Ensemble/Cluster: Grupa serwerรณw Zookeeper zwana zespoล‚em lub a Cluster. Moลผesz uลผyฤ‡ infrastruktury ZooKeeper w trybie klastra, aby mieฤ‡ system o optymalnej wartoล›ci, gdy uruchamiasz Apache.

Interfejs internetowy ZooKeepera: Jeล›li chcesz pracowaฤ‡ z zarzฤ…dzaniem zasobami ZooKeeper, musisz uลผyฤ‡ WebUI. Umoลผliwia pracฤ™ z ZooKeeperem przy uลผyciu internetowego interfejsu uลผytkownika, zamiast korzystania z wiersza poleceล„. Oferuje szybkฤ… i efektywnฤ… komunikacjฤ™ z aplikacjฤ… ZooKeeper.

Model danych zookeepera (ZDM)

Teraz w tym samouczku ZooKeeper dowiemy siฤ™ o modelu danych Zookeepera. Poniลผszy rysunek wyjaล›nia model danych Apache Zookeeper:

Model danych zookeepera
Model danych zookeepera
  • Model danych zookeepera podฤ…ลผa za hierarchicznฤ… przestrzeniฤ… nazw, w ktรณrej kaลผdy wฤ™zeล‚ nazywany jest ZNode. Wฤ™zeล‚ to system, w ktรณrym dziaล‚a klaster.
  • Kaลผdy ZNode ma dane. Moลผe mieฤ‡ dzieci lub nie
  • ลšcieลผki ZNode:
    • Kanoniczne, oddzielone ukoล›nikami i absolutne
    • Nie uลผywaj ลผadnych wzglฤ™dnych odniesieล„
    • Nazwy mogฤ… zawieraฤ‡ znaki Unicode
  • ZNode utrzymuje strukturฤ™ statystyk i numer wersji dla zmian danych.

Rodzaje wฤ™zล‚รณw zookeepera

Istniejฤ… trzy typy Znodรณw:

Uporczywoล›ฤ‡ znode: Ten typ znode dziaล‚a nawet po rozล‚ฤ…czeniu klienta, ktรณry utworzyล‚ ten konkretny znode. Domyล›lnie w zookeeperze wszystkie wฤ™zล‚y sฤ… trwaล‚e, jeล›li nie jest to okreล›lone.

Efemeryczny znode: Ten typ znode dozorcy zoo ลผyje, dopรณki klient nie ลผyje. Dlatego teลผ, gdy klient zostanie rozล‚ฤ…czony z zookeeperem, zostanie ono rรณwnieลผ usuniฤ™te. Co wiฤ™cej, wฤ™zล‚y efemeryczne nie mogฤ… mieฤ‡ dzieci.

Sekwencyjna znode: Kolejne znody mogฤ… byฤ‡ efemeryczne lub trwaล‚e. Zatem kiedy nowy znode tworzony jest jako znode sekwencyjny. Moลผesz przypisaฤ‡ ล›cieลผkฤ™ znode, doล‚ฤ…czajฤ…c 10-cyfrowy numer kolejny do oryginalnej nazwy.

ZDM- Zegarki

Zookeeper, zdarzenie watch to jednorazowy wyzwalacz, ktรณry jest wysyล‚any do klienta, ktรณry ustawiล‚ watch. Wystฤ™puje, gdy dane z tego watch ulegajฤ… zmianie. Watch ZDM pozwala klientom otrzymywaฤ‡ powiadomienia, gdy znode ulega zmianie. Operacje odczytu ZDM, takie jak getData(), getChidleren(), exist, majฤ… opcjฤ™ ustawienia watch.

Zegarki sฤ… uporzฤ…dkowane, kolejnoล›ฤ‡ zdarzeล„ zegarka odpowiada kolejnoล›ci aktualizacji. Klient bฤ™dzie mรณgล‚ zobaczyฤ‡ zdarzenie watch dla znode przed zobaczeniem nowych danych odpowiadajฤ…cych temu znode.

ZDM โ€“ lista kontroli dostฤ™pu

Zookeeper uลผywa list ACL do kontrolowania dostฤ™pu do swoich znode. Lista ACL skล‚ada siฤ™ z pary (schemat: id, pozwolenie)

Wbuduj schematy ACL:

ล›wiat: ma jeden identyfikator, kaลผdy

auth: Nie uลผywaj ลผadnego identyfikatora. Reprezentuje dowolnego uwierzytelnionego uลผytkownika

skrรณt: uลผyj nazwy uลผytkownika: hasล‚o

host: umoลผliwia uลผycie nazwy hosta klienta jako identyfikatora ACL

IP: uลผyj adresu IP hosta klienta jako identyfikatora ACL

Uprawnienia ACL:

  • TWORZENIE
  • CZYTAฤ†
  • NAPISZ
  • DELETE
  • ADMIN

Np. (IP: 192.168.0.0/16, CZYTAJ)

ZKS โ€“ Stany sesji i czas ลผycia

ZKS โ€“ Stany sesji
ZKS โ€“ Stany sesji
  • Przed wykonaniem jakiegokolwiek ลผฤ…dania waลผne jest, aby klient nawiฤ…zaล‚ sesjฤ™ z usล‚ugฤ…
  • Wszystkie operacje, do ktรณrych klienci sฤ… kierowani, sฤ… automatycznie kojarzone z sesjฤ…
  • Klient moลผe poล‚ฤ…czyฤ‡ siฤ™ z dowolnym serwerem w klastrze. Jednak poล‚ฤ…czy siฤ™ tylko z jednym serwerem
  • Sesja zapewnia โ€žgwarancje zamรณwieniaโ€. ลปฤ…dania w sesji realizowane sฤ… w kolejnoล›ci FIFO
  • Gล‚รณwne stany sesji to 1) ลฤ…czenie, 2) Poล‚ฤ…czona 3) Zamkniฤ™ta 4) Brak poล‚ฤ…czenia.

Jak zainstalowaฤ‡ ZooKeepera

Krok 1) Kliknij Kontynuuj subskrypcjฤ™
Idลบ do tego link i kliknij โ€žKontynuuj subskrypcjฤ™โ€

Zainstaluj ZooKeepera

Krok 2) Zaakceptuj regulamin
Na nastฤ™pnej stronie zaakceptuj umowฤ™ licencyjnฤ…

Zainstaluj ZooKeepera

Krok 3) Wyล›wietlono wiadomoล›ฤ‡ z podziฤ™kowaniami
Zobaczysz nastฤ™pujฤ…cy komunikat

Zainstaluj ZooKeepera

Krok 4) Kliknij Kontynuuj konfiguracjฤ™
Odล›wieลผ stronฤ™ po 5 minutach i przejdลบ do konfiguracji

Zainstaluj ZooKeepera

Krok 5) Kliknij โ€žKontynuuj uruchamianieโ€
Na nastฤ™pnym ekranie Uruchom ZooKeeper

Zainstaluj ZooKeepera

Krok 6) Gratulacje!
Gotowe!

Aplikacje Apache ZooKeeper

Apache Zookeeper uลผywany do nastฤ™pujฤ…cych celรณw:

  • Zarzฤ…dzanie konfiguracjฤ…
  • Usล‚ugi nazewnicze
  • Wybรณr lidera
  • Kolejkowanie wiadomoล›ci
  • Zarzฤ…dzanie systemem powiadomieล„
  • Synchronizacja
  • Rozproszone Cluster Zarzฤ…d

Firmy korzystajฤ…ce z Zookeepera

  • Yahoo
  • Facebook
  • eBay
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

Wady korzystania z Zookeepera

  • Jeล›li dodasz nowe serwery Zookeeper, moลผe nastฤ…piฤ‡ utrata danych
  • Brak moลผliwoล›ci migracji dla uลผytkownikรณw
  • Nie oferuj wsparcia w zakresie umieszczania stojakรณw i ล›wiadomoล›ci
  • Zookeeper nie pozwala na zmniejszenie liczby podรณw, aby zapobiec przypadkowej utracie danych
  • Nie moลผna przeล‚ฤ…czyฤ‡ usล‚ugi na sieฤ‡ hosta bez peล‚nej ponownej instalacji, gdy usล‚uga jest wdraลผana w sieci wirtualnej
  • Usล‚uga nie obsล‚uguje zmiany wymagaล„ dotyczฤ…cych woluminu po zakoล„czeniu wstฤ™pnego wdroลผenia
  • W grฤ™ wchodzi duลผa liczba wฤ™zล‚รณw, wiฤ™c moลผe wystฤ™powaฤ‡ wiฤ™cej niลผ jeden punkt awarii
  • Wiadomoล›ci mogฤ… zostaฤ‡ utracone w sieci komunikacyjnej, co wymaga specjalnego oprogramowania, aby je odzyskaฤ‡

Podsumowanie

  • Aplikacja rozproszona to aplikacja, ktรณra moลผe dziaล‚aฤ‡ na wielu systemach w sieci
  • Apache Zookeeper to rozproszona usล‚uga koordynacji typu open source, ktรณra pomaga zarzฤ…dzaฤ‡ duลผym zestawem hostรณw
  • Umoลผliwia wzajemne wykluczanie i wspรณล‚pracฤ™ pomiฤ™dzy procesami serwerowymi
  • Serwer, Klient, Lider, Naล›ladowca, Zespรณล‚/Cluster, ZooKeeper WebUI to waลผne komponenty zookeepera
  • Trzy typy Znodรณw to trwaล‚e, efemeryczne i sekwencyjne
  • Zegarek ZDM to jednorazowy wyzwalacz wysyล‚any do klienta ustawiajฤ…cego zegarek. Miaล‚o to miejsce w momencie zmiany danych z tego zegarka
  • Zookeeper Hadoop uลผywa list ACL do kontrolowania dostฤ™pu do swoich znodes
  • Zarzฤ…dzanie konfiguracjฤ…, Nazewnictwo usล‚ug, Wybรณr lidera, Kolejkowanie wiadomoล›ci, Zarzฤ…dzanie systemem powiadomieล„, Synchronizacja, rozproszona Cluster Zarzฤ…dzanie itp.
  • Yahoo, Facebook, eBay, Twitter, Netflix to kilka znanych firm korzystajฤ…cych z zookeeper
  • Gล‚รณwnฤ… wadฤ… tego narzฤ™dzia jest to, ลผe w przypadku dodawania nowych serwerรณw Zookeeper moลผe wystฤ…piฤ‡ strata

Podsumuj ten post nastฤ™pujฤ…co: