ZooKeeper Tutorial: Hvad er, Architecture af Apache ZooKeeper

Hvad er et distribueret system?

En distribueret applikation er en applikation, der kan køre på flere systemer i et netværk. Det kører samtidigt ved at koordinere sig selv for at udføre en bestemt opgave. Disse opgaver kan tage masser af timer at udføre af enhver ikke-distribueret applikation.

Hvad er Zookeeper?

Apache Zookeeper er en open source distribueret koordinationstjeneste, der hjælper med at administrere et stort sæt værter. Ledelse og koordinering i et distribueret miljø er vanskeligt. Zookeeper automatiserer denne proces og giver udviklere mulighed for at fokusere på at bygge softwarefunktioner i stedet for at bekymre sig om dens distribuerede natur.

Zookeeper hjælper dig med at vedligeholde konfigurationsoplysninger, navngivning, gruppetjenester til distribuerede applikationer. Den implementerer forskellige protokoller på klyngen, så applikationen ikke bør implementere på egen hånd. Det giver et enkelt sammenhængende billede af flere maskiner.

Hvorfor Apache Zookeeper?

Her er vigtige årsager til dyrepasserens popularitet:

  • Det giver mulighed for gensidig udelukkelse og samarbejde mellem serverprocesser
  • Det sikrer, at din applikation kører konsekvent.
  • Transaktionsprocessen afsluttes aldrig delvist. Det får enten status som succes eller fiasko. Den distribuerede tilstand kan holdes op, men det er aldrig forkert
  • Uanset hvilken server den opretter forbindelse til, vil en klient kunne se den samme visning af tjenesten
  • Hjælper dig med at kode dataene i henhold til det specifikke sæt regler
  • Det hjælper med at opretholde et standard hierarkisk navneområde svarende til filer og mapper
  • Computere, der kører som et enkelt system, der kan være lokalt eller geografisk forbundet
  • Det giver mulighed for at slutte sig til/forlade node i en klynge og nodestatus i realtid
  • Du kan øge ydeevnen ved at implementere flere maskiner
  • Det giver dig mulighed for at vælge en node som leder for bedre koordinering
  • ZooKeeper arbejder hurtigt med arbejdsbelastninger, hvor læsninger til dataene er mere almindelige end skrivninger

Dyrepasser Architecture: Hvordan virker det?

Her er en kort forklaring vedr Apache Zookeeper arkitektur:

  • Zookeeper følger en klient-server Architecture
  • Alle systemer gemmer en kopi af dataene
  • Ledere vælges ved opstart
Architecture af ZooKeeper
Architecture af ZooKeeper

Server: Serveren sender en bekræftelse, når en klient opretter forbindelse. I det tilfælde, hvor der ikke er noget svar fra den tilsluttede server, omdirigerer klienten automatisk beskeden til en anden server.

Klient: Klient er en af ​​noderne i den distribuerede applikationsklynge. Det hjælper dig med at få adgang til information fra serveren. Hver klient sender en besked til serveren med jævne mellemrum, der hjælper serveren med at vide, at klienten er i live.

Leder: En af serverne er udpeget som en leder. Det giver alle informationer til klienterne samt en bekræftelse af, at serveren er i live. Det ville udføre automatisk gendannelse, hvis nogen af ​​de tilsluttede noder fejlede.

Følger: Servernode, der følger lederinstruktioner, kaldes en følger.

  • Klientlæseanmodninger håndteres af den tilsvarende tilsluttede Zookeeper-server
  • Klienten skriver anmodninger håndteres af dyrepasserens leder.

Ensemble/Cluster: Gruppe af Zookeeper-servere, som kaldes ensemble eller en Cluster. Du kan bruge ZooKeeper-infrastrukturen i klyngetilstanden for at få systemet til den optimale værdi, når du kører Apache.

ZooKeeper WebUI: Hvis du vil arbejde med ZooKeeper ressourcestyring, så skal du bruge WebUI. Det gør det muligt at arbejde med ZooKeeper ved hjælp af webbrugergrænsefladen i stedet for at bruge kommandolinjen. Det giver hurtig og effektiv kommunikation med ZooKeeper-applikationen.

Zookeeper Data Model (ZDM)

Lad os nu i denne ZooKeeper-tutorial lære om Zookeeper Data Model. Nedenstående figur forklarer Apache Zookeeper Data Model:

Zookeeper Data Model
Zookeeper datamodel
  • Zookeeper-datamodellen følger et hierarkisk navneområde, hvor hver node kaldes en ZNode. En node er et system, hvor klyngen kører.
  • Hver ZNode har data. Det kan have børn eller ikke
  • ZNode stier:
    • Kanonisk, skråstreg-separeret og absolut
    • Brug ikke nogen relative referencer
    • Navne kan have Unicode-tegn
  • ZNode vedligeholder statstruktur og versionsnummer for dataændringer.

Typer af Zookeeper noder

Der er tre typer Znodes:

Vedholdenhed znode: Denne type znode er i live, selv efter at den klient, der oprettede den specifikke znode, er afbrudt. Som standard i zookeeper er alle noder persistente, hvis det ikke er angivet.

kortvarig znode: Denne type zookeeper znode er i live, indtil klienten er i live. Derfor, når klienten får en afbrydelse fra dyrepasseren, vil den også blive slettet. Desuden må flygtige noder ikke få børn.

Sekventiel znode: Sekventielle znoder kan enten være flygtige eller vedvarende. Så når en ny znode oprettes som en sekventiel znode. Du kan tildele stien til znoden ved at knytte et 10-cifret sekvensnummer til det originale navn.

ZDM- Ure

Zookeeper, en vagthændelse er en engangsudløser, som sendes til den klient, der har sat vagt. Det skete, når data fra det ur ændres. ZDM-ur giver klienter mulighed for at få meddelelser, når znode ændres. ZDM læseoperationer som getData(), getChidleren(), findes har mulighed for at indstille et ur.

Ure er bestilt, rækkefølgen af ​​urbegivenheder svarer til rækkefølgen af ​​opdateringerne. En klient vil være i stand til at se en overvågningshændelse for znode, før han ser de nye data, der svarer til den pågældende znode.

ZDM- Adgangskontrolliste

Zookeeper bruger ACL'er til at kontrollere adgangen til sine znoder. ACL består af et par (skema: id, tilladelse)

Indbyggede ACL-ordninger:

verden: har et enkelt id, hvem som helst

auth: Brug ikke noget id, det repræsenterer enhver godkendt bruger

digest: brug et brugernavn: adgangskode

vært: Giver dig mulighed for at bruge klientens værtsnavn som ACL-id-identitet

IP: brug klientens værts-IP-adresse som ACL-id-identitet

ACL-tilladelser:

  • SKAB
  • LÆSE
  • SKRIV
  • SLET
  • ADMIN

Eks (IP: 192.168.0.0/16, LÆS)

ZKS – Sessionstilstande og levetid

ZKS – Sessionsstater
ZKS – Sessionsstater
  • Før en anmodning udføres, er det vigtigt, at klienten skal etablere en session med service
  • Alle operationsklienter, der sendes til service, knyttes automatisk til en session
  • Klienten kan oprette forbindelse til enhver server i klyngen. Men det vil kun oprette forbindelse til en enkelt server
  • Sessionen giver "ordregarantier". Anmodningerne i sessionen udføres i FIFO-rækkefølge
  • Hovedtilstandene for en session er 1) Opretter forbindelse, 2) Forbinder 3) Lukket 4) Ikke tilsluttet.

Sådan installeres ZooKeeper

Trin 1) Klik på Fortsæt for at abonnere
Gå til dette link og klik på 'Fortsæt med at abonnere'

Installer ZooKeeper

Trin 2) Accepter vilkår og betingelser
Accepter licensaftalen på næste side

Installer ZooKeeper

Trin 3) Tak besked vist
Du vil se følgende besked

Installer ZooKeeper

Trin 4) Klik på Fortsæt for at konfigurere
Opdater siden efter 5 minutter, og fortsæt til konfiguration

Installer ZooKeeper

Trin 5) Klik på 'Fortsæt til lancering'
Start ZooKeeper på næste skærmbillede

Installer ZooKeeper

Trin 6) Tillykke!
Du er færdig!

Apache ZooKeeper-applikationer

Apache Zookeeper brugt til følgende formål:

  • Håndtering af konfigurationen
  • Navngivningstjenester
  • Valg af leder
  • Sætter beskederne i kø
  • Håndtering af notifikationssystemet
  • Synchronisering
  • Distribueret Cluster Management

Virksomheder, der bruger Zookeeper

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

Ulemper ved at bruge Zookeeper

  • Datatab kan forekomme, hvis du tilføjer nye Zookeeper-servere
  • Ingen migrering tilladt for brugere
  • Tilbyder ikke support til rackplacering og -bevidsthed
  • Zookeeper tillader dig ikke at reducere antallet af pods for at forhindre utilsigtet tab af data
  • Du kan ikke skifte tjeneste til værtsnetværk uden en fuld geninstallation, når tjenesten er implementeret på et virtuelt netværk
  • Tjenesten understøtter ikke ændrede volumenkrav, når den første implementering er overstået
  • Der er et stort antal knudepunkter involveret, så der kan være mere end ét fejlpunkt
  • Meddelelser kan gå tabt i kommunikationsnetværket, hvilket kræver speciel software for at gendanne det igen

Resumé

  • En distribueret applikation er en applikation, der kan køre på flere systemer i et netværk
  • Apache Zookeeper er en open source distribueret koordinationstjeneste, der hjælper dig med at administrere et stort sæt værter
  • Det giver mulighed for gensidig udelukkelse og samarbejde mellem serverprocesser
  • Server, klient, leder, følger, ensemble/Cluster, ZooKeeper WebUI er vigtige dyrepasserkomponenter
  • Tre typer Znoder er Persistens, Ephemeral og sekventiel
  • ZDM-ur er en engangsudløser, som sendes til den klient, der har indstillet uret. Det skete, når data fra det ur ændres
  • Zookeeper Hadoop bruger ACL'er til at kontrollere adgangen til sine znoder
  • Håndtering af konfigurationen, Navngivningstjenester., Valg af leder, Sæt beskederne i kø, Håndtering af notifikationssystemet, Synchronisering, Uddelt Cluster Ledelse mv.
  • Yahoo, Facebook, eBay, Twitter, Netflix er nogle kendte virksomheder, der bruger zookeeper
  • Den største ulempe ved værktøjet er, at tab kan forekomme, hvis du tilføjer nye Zookeeper-servere