Samouczek Apache ZooKeeper

โšก Inteligentne podsumowanie

W samouczku Apache ZooKeeper przedstawiono scentralizowanฤ… usล‚ugฤ™ konfiguracji, nadawania nazw, synchronizacji i usล‚ug grupowych w systemach rozproszonych. LessOmรณwiono architekturฤ™, model danych, obserwacje, zespoล‚y, aplikacje, zalety i wady.

  • ๐Ÿ›๏ธ. Usล‚uga koordynacyjna: ZooKeeper stanowi niezawodnฤ… podstawฤ™ koordynacji i konsensusu rozproszonych aplikacji.
  • ๐Ÿ—‚๏ธ. Drzewo ZNode: Dane sฤ… przechowywane w hierarchicznej przestrzeni nazw ZNodes przypominajฤ…cej system plikรณw.
  • ???? Zegarki: Klienci subskrybujฤ… zdarzenia ZNode i odbierajฤ… wywoล‚ania zwrotne w przypadku zmiany danych lub pojawienia siฤ™ elementรณw potomnych.
  • ๐Ÿงฉ Kworum zespoล‚u: Zespรณล‚ serwerรณw skล‚adajฤ…cy siฤ™ z nieparzystej liczby zapewnia odpornoล›ฤ‡ na bล‚ฤ™dy i zapis oparty na wiฤ™kszoล›ci.
  • โšก Przypadkรณw uลผycia: Wybory lidera uprawnieล„, rozproszone blokady, wyszukiwanie usล‚ug i zarzฤ…dzanie konfiguracjฤ….
  • ๐Ÿค– AI Cluster Pomoc: Asystenci AI wyjaล›niajฤ… tryby awarii ZooKeepera i generujฤ… konfiguracje zespoล‚owe przyjazne dla Kubernetesa.

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ฤ‡

FAQ

ZooKeeper koordynuje rozproszone aplikacje, zapewniajฤ…c spรณjnฤ… konfiguracjฤ™, nazewnictwo, synchronizacjฤ™ i usล‚ugi wyboru lidera. Eliminuje to koniecznoล›ฤ‡ tworzenia tych prymitywรณw od podstaw w kaลผdym systemie.

Narzฤ™dzia AI generujฤ… konfiguracjฤ™ ZooKeepera, sugerujฤ… rozmiar zespoล‚u oraz analizujฤ… metryki ruok i mntr. Sygnalizujฤ… zagroลผenia zwiฤ…zane z rozszczepieniem mรณzgu i proponujฤ… skrypty kontroli poprawnoล›ci dziaล‚ania klastrรณw produkcyjnych.

Tak. Asystenci AI analizujฤ… logi zookeeper.out, rozpoznajฤ… wzorce utraty kworum i zalecajฤ… dostrojenie limitรณw czasu sesji. Tworzฤ… rรณwnieลผ podrฤ™czniki dla cyklicznych restartรณw i odzyskiwania migawek.

Zespรณล‚ to grupa serwerรณw ZooKeeper dziaล‚ajฤ…cych razem. Zapisy wymagajฤ… kworum wiฤ™kszoล›ciowego, dlatego wiฤ™kszoล›ฤ‡ konfiguracji produkcyjnych korzysta z nieparzystej liczby serwerรณw, takiej jak trzy, piฤ™ฤ‡ lub siedem.

ZNode to wฤ™zeล‚ w przestrzeni nazw ZooKeeper, przechowujฤ…cy niewielkie iloล›ci danych i metadanych. ZNode mogฤ… byฤ‡ trwaล‚e, efemeryczne lub sekwencyjne, umoลผliwiajฤ…c blokady i wzorce wyboru lidera.

Kafka 4.0 i tryb KRaft usuwajฤ… ZooKeepera, zastฤ™pujฤ…c go wewnฤ™trznym kworum kontrolera opartym na Raft. Nowe wdroลผenia korzystajฤ… z KRaft, podczas gdy starsze klastry mogฤ… nadal bezpiecznie korzystaฤ‡ z ZooKeepera.

ZooKeeper obsล‚uguje uwierzytelnianie SASL, Kerberos, transport TLS i autoryzacjฤ™ opartฤ… na listach kontroli dostฤ™pu (ACL). Wล‚ฤ…cz te funkcje i segmentuj zespoล‚y dla kaลผdego dzierลผawcy, aby zachowaฤ‡ izolacjฤ™ w ล›rodowiskach wspรณล‚dzielonych.

Poczฤ…tkujฤ…cy opanujฤ… model danych i CLI w tydzieล„. OperaWyposaลผenie zespoล‚u produkcyjnego w migawki, monitorowanie i Kerberos zazwyczaj wymaga od jednego do trzech miesiฤ™cy praktycznego doล›wiadczenia.

Podsumuj ten post nastฤ™pujฤ…co: