Tutorial ZooKeeper: Ce este, Architectura Apache ZooKeeper
Ce este un sistem distribuit?
O aplicație distribuită este o aplicație care poate rula pe mai multe sisteme dintr-o rețea. Funcționează simultan prin coordonarea ei înșiși pentru a îndeplini o anumită sarcină. Aceste sarcini pot dura multe ore pentru a fi finalizate de către orice aplicație nedistribuită.
Ce este Zookeeper?
Apache Zookeeper este un serviciu de coordonare distribuit cu sursă deschisă care ajută la gestionarea unui set mare de gazde. Managementul și coordonarea într-un mediu distribuit este dificil. Zookeeper automatizează acest proces și permite dezvoltatorilor să se concentreze pe construirea de caracteristici software, mai degrabă decât să se îngrijoreze de natura sa distribuită.
Zookeeper vă ajută să mențineți informații de configurare, denumire, servicii de grup pentru aplicațiile distribuite. Implementează diferite protocoale pe cluster, astfel încât aplicația să nu fie implementată singură. Oferă o singură vedere coerentă a mai multor mașini.
De ce Apache Zookeeper?
Iată motivele importante din spatele popularității Zookeeperului:
- Permite excluderea reciprocă și cooperarea între procesele serverului
- Acesta asigură că aplicația dumneavoastră rulează în mod constant.
- Procesul de tranzacție nu este niciodată finalizat parțial. I se acordă fie statutul de succes, fie eșec. Starea distribuită poate fi oprită, dar nu este niciodată greșită
- Indiferent de serverul la care se conectează, un client va putea vedea aceeași vizualizare a serviciului
- Vă ajută să codificați datele conform setului specific de reguli
- Ajută la menținerea unui spațiu de nume ierarhic standard similar fișierelor și directoarelor
- Calculatoare, care rulează ca un singur sistem care poate fi conectat local sau geografic
- Permite alăturarea/părăsirea nodului într-un cluster și starea nodului în timp real
- Puteți crește performanța prin implementarea mai multor mașini
- Vă permite să alegeți un nod ca lider pentru o mai bună coordonare
- ZooKeeper funcționează rapid cu sarcini de lucru în care citirile datelor sunt mai frecvente decât scrierile
Ingrijitor zoo Architectură: Cum funcționează?
Iată o scurtă explicație despre Apache Arhitectura zookeeper:
- Zookeeper urmează un client-server Architectură
- Toate sistemele stochează o copie a datelor
- Liderii sunt aleși la pornire
Server: Serverul trimite o confirmare când se conectează orice client. În cazul în care nu există niciun răspuns de la serverul conectat, clientul redirecționează automat mesajul către un alt server.
Client: Clientul este unul dintre nodurile din clusterul de aplicații distribuite. Vă ajută să accesați informațiile de pe server. Fiecare client trimite un mesaj către server la intervale regulate care îl ajută pe server să știe că clientul este în viață.
Lider: Unul dintre servere este desemnat Lider. Oferă toate informațiile clienților, precum și o confirmare că serverul este viu. Ar efectua recuperarea automată dacă oricare dintre nodurile conectate ar eșua.
Adept: Nodul server care urmează instrucțiunile liderului se numește adept.
- Solicitările de citire ale clientului sunt gestionate de serverul Zookeeper conectat corespunzător
- Clientul scrie cererile sunt gestionate de către liderul Zookeeper.
Ansamblu/Cluster: Grup de servere Zookeeper care se numește ansamblu sau a Cluster. Puteți utiliza infrastructura ZooKeeper în modul cluster pentru a avea sistemul la valoarea optimă atunci când rulați Apache.
ZooKeeper WebUI: Dacă doriți să lucrați cu gestionarea resurselor ZooKeeper, atunci trebuie să utilizați WebUI. Permite lucrul cu ZooKeeper folosind interfața cu utilizatorul web, în loc să utilizeze linia de comandă. Oferă o comunicare rapidă și eficientă cu aplicația ZooKeeper.
Modelul de date Zookeeper (ZDM)
Acum, în acest tutorial ZooKeeper, să învățăm despre Modelul de date Zookeeper. Figura de mai jos explică modelul de date Apache Zookeeper:
- Modelul de date zookeeper urmează un spațiu de nume ierarhic în care fiecare nod este numit ZNode. Un nod este un sistem în care rulează clusterul.
- Fiecare ZNode are date. Poate avea sau nu copii
- Căile ZNode:
- Canonic, slash-separat și absolut
- Nu utilizați referințe relative
- Numele pot avea caractere Unicode
- ZNode menține structura statistică și numărul versiunii pentru modificările datelor.
Tipuri de noduri Zookeeper
Există trei tipuri de Znodes:
Persistență znode: Acest tip de znode este activ chiar și după ce clientul care a creat acel znode specific este deconectat. În mod implicit, în zookeeper, toate nodurile sunt persistente dacă nu este specificat.
efemer znode: Acest tip de zookeeper znode sunt în viață până când clientul este în viață. Prin urmare, atunci când clientul primește o deconectare de la grădina zoologică, aceasta va fi, de asemenea, ștearsă. Mai mult decât atât, nodurile efemere nu au voie să aibă copii.
secvențială znode: nodurile znode secvenţiale pot fi fie efemere, fie persistente. Deci, atunci când un nou znode este creat ca un znode secvenţial. Puteți atribui calea nodului znod atașând un număr de secvență de 10 cifre la numele original.
ZDM- Ceasuri
Zookeeper, un eveniment de ceas este un declanșator unic care este trimis clientului care a setat ceasul. A avut loc atunci când datele de la acel ceas se modifică. ZDM watch permite clienților să primească notificări atunci când znode se schimbă. Operațiile de citire ZDM precum getData(), getChidleren(), există au opțiunea de a seta un ceas.
Ceasurile sunt comandate, ordinea evenimentelor ceasului corespunde cu ordinea actualizărilor. Un client va putea vedea un eveniment de urmărire pentru znode înainte de a vedea noile date care corespund acelui znode.
ZDM- Lista de control al accesului
Zookeeper folosește ACL-uri pentru a controla accesul la nodurile sale. ACL este alcătuit dintr-o pereche de (Schema: id, permisiunea)
Construiți în scheme ACL:
lume: are un singur id, oricine
auth: Nu utilizați niciun id, reprezintă orice utilizator autentificat
digest: utilizați un nume de utilizator: parolă
gazdă: Vă permite să utilizați numele de gazdă al clientului ca identitate ACL ID
IP: utilizați adresa IP a gazdei client ca identitate ACL ID
Permisiuni ACL:
- CREATE
- CITIT
- SCRIE
- DELETE
- ADMIN
Ex (IP: 192.168.0.0/16, CITEȘTE)
ZKS – Stări de sesiune și durata de viață
- Înainte de a executa orice cerere, este important ca clientul să stabilească o sesiune cu service
- Toate operațiunile clienților trimiși la service sunt asociate automat cu o sesiune
- Clientul se poate conecta la orice server din cluster. Dar se va conecta doar la un singur server
- Sesiunea oferă „garanții de comandă”. Solicitările din sesiune sunt executate în ordine FIFO
- Principalele stări pentru o sesiune sunt 1) Conectat, 2) Conectat 3) Închis 4) Neconectat.
Cum se instalează ZooKeeper
Pas 1) Faceți clic pe Continuați pentru abonare
Du-te la asta legătură și faceți clic pe „Continuați să vă abonați”
Pas 2) Acceptați Termenii și Condițiile
În pagina următoare, Acceptați acordul de licență
Pas 3) Mesaj de mulțumire afișat
Veți vedea următorul mesaj
Pas 4) Faceți clic pe Continuare pentru a configura
Reîmprospătați pagina după 5 minute și continuați pentru configurare
Pas 5) Faceți clic pe „Continuați pentru a lansa”
În ecranul următor, lansați ZooKeeper
Pas 6) Felicitări!
Esti gata!
Aplicații Apache ZooKeeper
Apache Zookeeper utilizat în următoarele scopuri:
- Gestionarea configurației
- Servicii de denumire
- Alegerea liderului
- Pune în coadă mesajele
- Gestionarea sistemului de notificare
- Synchronizare
- distribuit Cluster Management
Companii care folosesc Zookeeper
- Yahoo
- eBay
- Netflix
- Zynga
- Nutanix
Dezavantajele utilizării Zookeeper
- Pierderea datelor poate apărea dacă adăugați noi servere Zookeeper
- Nu este permisă migrarea utilizatorilor
- Nu oferă suport pentru plasarea Rack-ului și conștientizarea
- Zookeeper nu vă permite să reduceți numărul de poduri pentru a preveni pierderea accidentală a datelor
- Nu puteți comuta serviciul în rețea gazdă fără o reinstalare completă atunci când serviciul este implementat într-o rețea virtuală
- Serviciul nu acceptă modificarea cerințelor de volum odată ce implementarea inițială s-a încheiat
- Există un număr mare de noduri implicate, astfel încât ar putea exista mai multe puncte de defecțiune
- Mesajele se pot pierde în rețeaua de comunicații, care necesită un software special pentru a le recupera din nou
Rezumat
- O aplicație distribuită este o aplicație care poate rula pe mai multe sisteme dintr-o rețea
- Apache Zookeeper este un serviciu de coordonare distribuit cu sursă deschisă care vă ajută să gestionați un set mare de gazde
- Permite excluderea reciprocă și cooperarea între procesele serverului
- Server, client, lider, urmăritor, ansamblu/Cluster, ZooKeeper WebUI sunt componente importante pentru zookeeper
- Trei tipuri de Znodes sunt persistente, efemere și secvențiale
- Ceasul ZDM este un declanșator unic care este trimis clientului care a setat ceasul. A avut loc atunci când datele de la acel ceas se modifică
- Zookeeper Hadoop folosește ACL-uri pentru a controla accesul la nodurile sale
- Gestionarea configurației, Servicii de denumire, selectarea liderului, Așezarea mesajelor în coadă, Gestionarea sistemului de notificare, Synchronizare, Distribuit Cluster Management, etc.
- Yahoo, Facebook, eBay, Twitter, Netflix sunt unele companii cunoscute care folosesc zookeeper
- Principalul dezavantaj al instrumentului este că poate apărea pierderea dacă adăugați noi servere Zookeeper