Poradnik ZooKeeper: Co to jest, Architecture Apache 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
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 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
- 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ę”
Krok 2) Zaakceptuj regulamin
Na następnej stronie zaakceptuj umowę licencyjną
Krok 3) Wyświetlono wiadomość z podziękowaniami
Zobaczysz następujący komunikat
Krok 4) Kliknij Kontynuuj konfigurację
Odśwież stronę po 5 minutach i przejdź do konfiguracji
Krok 5) Kliknij „Kontynuuj uruchamianie”
Na następnym ekranie Uruchom ZooKeeper
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ądzanie
Firmy korzystające z Zookeepera
- Yahoo
- eBay
- 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