ZooKeeper-handledning

Vad รคr ett distribuerat system?

En distribuerad applikation รคr en applikation som kan kรถras pรฅ flera system i ett nรคtverk. Det kรถrs samtidigt genom att koordinera sig sjรคlva fรถr att slutfรถra en viss uppgift. Dessa uppgifter kan ta mรฅnga timmar att slutfรถra av alla icke-distribuerade applikationer.

Vad รคr Zookeeper?

Apache djurskรถtare รคr en distribuerad koordineringstjรคnst med รถppen kรคllkod som hjรคlper till att hantera en stor uppsรคttning vรคrdar. Ledning och samordning i en distribuerad miljรถ รคr knepigt. Zookeeper automatiserar denna process och lรฅter utvecklare fokusera pรฅ att bygga mjukvarufunktioner snarare รคn att oroa sig fรถr dess distribuerade natur.

Zookeeper hjรคlper dig att underhรฅlla konfigurationsinformation, namngivning, grupptjรคnster fรถr distribuerade applikationer. Den implementerar olika protokoll pรฅ klustret sรฅ att applikationen inte ska implementeras pรฅ egen hand. Det ger en enda sammanhรคngande bild av flera maskiner.

Varfรถr Apache Zookeeper?

Hรคr รคr viktiga skรคl bakom djurskรถtarens popularitet:

  • Det mรถjliggรถr รถmsesidig uteslutning och samarbete mellan serverprocesser
  • Det sรคkerstรคller att din applikation kรถrs konsekvent.
  • Transaktionsprocessen slutfรถrs aldrig delvis. Den fรฅr antingen statusen Framgรฅng eller misslyckande. Det distribuerade tillstรฅndet kan hรฅllas uppe, men det รคr aldrig fel
  • Oavsett vilken server den ansluter till, kommer en klient att kunna se samma vy av tjรคnsten
  • Hjรคlper dig att koda data enligt den specifika uppsรคttningen av regler
  • Det hjรคlper till att upprรคtthรฅlla ett standard hierarkiskt namnutrymme som liknar filer och kataloger
  • Datorer, som kรถrs som ett enda system som kan kopplas lokalt eller geografiskt
  • Det tillรฅter att gรฅ med/lรคmna nod i ett kluster och nodstatus i realtid
  • Du kan รถka prestandan genom att distribuera fler maskiner
  • Det lรฅter dig vรคlja en nod som ledare fรถr bรคttre koordination
  • ZooKeeper arbetar snabbt med arbetsbelastningar dรคr lรคsningar till data รคr vanligare รคn skrivningar

ZooKeeper Architecture: Hur fungerar det?

Hรคr รคr en kort fรถrklaring om Apache Zookeeper arkitektur:

  • Zookeeper fรถljer en klient-server Architecture
  • Alla system lagrar en kopia av data
  • Ledare vรคljs vid start
Architecture av ZooKeeper
Architecture av ZooKeeper

Server: Servern skickar en bekrรคftelse nรคr nรฅgon klient ansluter. Om det inte finns nรฅgot svar frรฅn den anslutna servern, omdirigerar klienten automatiskt meddelandet till en annan server.

Klient: Klienten รคr en av noderna i det distribuerade applikationsklustret. Det hjรคlper dig att komma รฅt information frรฅn servern. Varje klient skickar ett meddelande till servern med jรคmna mellanrum som hjรคlper servern att veta att klienten รคr vid liv.

Ledare: En av servrarna รคr utsedd till Leader. Den ger all information till klienterna samt en bekrรคftelse pรฅ att servern รคr vid liv. Den skulle utfรถra automatisk รฅterstรคllning om nรฅgon av de anslutna noderna misslyckades.

Efterfรถljare: Servernod som fรถljer ledarinstruktioner kallas en fรถljare.

  • Klientlรคsfรถrfrรฅgningar hanteras av den motsvarande anslutna Zookeeper-servern
  • Klienten skriver att fรถrfrรฅgningar hanteras av djurskรถtarens ledare.

Ensemble/Cluster: Grupp av Zookeeper-servrar som kallas ensemble eller en Cluster. Du kan anvรคnda ZooKeeper-infrastrukturen i klusterlรคget fรถr att fรฅ systemet till det optimala vรคrdet nรคr du kรถr Apache.

ZooKeeper WebUI: Om du vill arbeta med ZooKeeper resurshantering mรฅste du anvรคnda WebUI. Det gรถr det mรถjligt att arbeta med ZooKeeper med hjรคlp av webbanvรคndargrรคnssnittet, istรคllet fรถr att anvรคnda kommandoraden. Den erbjuder snabb och effektiv kommunikation med ZooKeeper-applikationen.

Zookeeper Data Model (ZDM)

Nu i denna ZooKeeper-handledning, lรฅt oss lรคra oss om Zookeeper Data Model. Bilden nedan fรถrklarar Apache Zookeeper Data Model:

Djurskรถtarens datamodell
Zookeeper Data Model
  • Djurskรถtarens datamodell fรถljer en hierarkisk namnrymd dรคr varje nod kallas en ZNode. En nod รคr ett system dรคr klustret kรถrs.
  • Varje ZNode har data. Det kan ha barn eller inte
  • ZNode sรถkvรคgar:
    • Kanonisk, snedstreckseparerad och absolut
    • Anvรคnd inte nรฅgra relativa referenser
    • Namn kan ha Unicode-tecken
  • ZNode upprรคtthรฅller statstruktur och versionsnummer fรถr dataรคndringar.

Typer av Zookeeper Noder

Det finns tre typer av Znoder:

Persistens znode: Den hรคr typen av znode รคr levande รคven efter att klienten som skapade den specifika znoden har kopplats bort. Som standard, i zookeeper, รคr alla noder bestรคndiga om det inte anges.

Kortlivad znode: Denna typ av zookeeper znode รคr vid liv tills klienten รคr vid liv. Dรคrfรถr, nรคr klienten fรฅr en frรฅnkoppling frรฅn djurskรถtaren, kommer den ocksรฅ att raderas. Dessutom รคr tillfรคlliga noder inte tillรฅtna att fรฅ barn.

Sekventiell znode: Sekventiella znoder kan vara antingen tillfรคlliga eller bestรคndiga. Sรฅ nรคr en ny znod skapas som en sekventiell znod. Du kan tilldela sรถkvรคgen till znoden genom att bifoga ett 10-siffrigt sekvensnummer till det ursprungliga namnet.

ZDM- Klockor

Zookeeper, en bevakningshรคndelse รคr en engรฅngsutlรถsare som skickas till klienten som stรคllt in vakt. Det intrรคffade nรคr data frรฅn den klockan รคndras. ZDM-klocka lรฅter klienter fรฅ meddelanden nรคr znode รคndras. ZDM-lรคsoperationer som getData(), getChidleren(), finns har mรถjlighet att stรคlla in en klocka.

Klockor รคr bestรคllda, ordningen pรฅ bevakningshรคndelser motsvarar ordningen pรฅ uppdateringarna. En klient kommer att kunna se en bevakningshรคndelse fรถr znode innan den ser den nya data som motsvarar den znoden.

ZDM- Access Control lista

Zookeeper anvรคnder ACL:er fรถr att kontrollera รฅtkomsten till sina znoder. ACL bestรฅr av ett par (schema: id, behรถrighet)

Inbyggda ACL-scheman:

vรคrld: har ett enda id, vem som helst

auth: Anvรคnd inte nรฅgot id, det representerar alla autentiserade anvรคndare

digest: anvรคnd ett anvรคndarnamn: lรถsenord

vรคrd: Lรฅter dig anvรคnda klientens vรคrdnamn som ACL-id-identitet

IP: anvรคnd klientvรคrdens IP-adress som ACL-id-identitet

ACL-behรถrigheter:

  • SKAPA
  • Lร„SA
  • SKRIVA
  • RADERA
  • ADMINISTRATION

Ex (IP: 192.168.0.0/16, Lร„S)

ZKS โ€“ Session tillstรฅnd och livstid

ZKS โ€“ Sessionsstater
ZKS โ€“ Sessionsstater
  • Innan en begรคran utfรถrs รคr det viktigt att kunden mรฅste upprรคtta en session med tjรคnsten
  • Alla operationsklienter som skickas till tjรคnst kopplas automatiskt till en session
  • Klienten kan ansluta till vilken server som helst i klustret. Men den kommer bara att ansluta till en enda server
  • Sessionen ger "ordergarantier". Fรถrfrรฅgningarna i sessionen utfรถrs i FIFO-ordning
  • Huvudtillstรฅnden fรถr en session รคr 1) Ansluter, 2) Ansluten 3) Stรคngd 4) Ej ansluten.

Hur man installerar ZooKeeper

Steg 1) Klicka pรฅ Fortsรคtt fรถr att prenumerera
Gรฅ till det hรคr lรคnk och klicka pรฅ "Fortsรคtt att prenumerera"

Installera ZooKeeper

Steg 2) Acceptera villkoren
Pรฅ nรคsta sida, Acceptera licensavtalet

Installera ZooKeeper

Steg 3) Tackmeddelande visas
Du kommer att se fรถljande meddelande

Installera ZooKeeper

Steg 4) Klicka pรฅ Fortsรคtt fรถr att konfigurera
Uppdatera sidan efter 5 minuter och fortsรคtt fรถr konfiguration

Installera ZooKeeper

Steg 5) Klicka pรฅ "Fortsรคtt till start"
Pรฅ nรคsta skรคrm, Starta ZooKeeper

Installera ZooKeeper

Steg 6) grattis!
Du รคr fรคrdig!

Apache ZooKeeper-applikationer

Apache Zookeeper anvรคnds fรถr fรถljande รคndamรฅl:

  • Hantera konfigurationen
  • Namngivningstjรคnster
  • Att vรคlja ledare
  • Stรคller meddelandena i kรถ
  • Hantera aviseringssystemet
  • Synchronisering
  • Distribuerad Cluster Verksamhetsledningen

Fรถretag som anvรคnder Zookeeper

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

Nackdelar med att anvรคnda Zookeeper

  • Datafรถrlust kan intrรคffa om du lรคgger till nya Zookeeper-servrar
  • Ingen migrering tillรฅten fรถr anvรคndare
  • Erbjuder inte stรถd fรถr rackplacering och medvetenhet
  • Zookeeper tillรฅter inte att du minskar antalet pods fรถr att fรถrhindra oavsiktlig datafรถrlust
  • Du kan inte byta tjรคnst till vรคrdnรคtverk utan en fullstรคndig ominstallation nรคr tjรคnsten distribueras pรฅ ett virtuellt nรคtverk
  • Tjรคnsten stรถder inte รคndrade volymkrav nรคr den fรถrsta implementeringen รคr รถver
  • Det finns ett stort antal noder inblandade sรฅ det kan finnas mer รคn en punkt dรคr felet uppstรฅr
  • Meddelanden kan gรฅ fรถrlorade i kommunikationsnรคtverket, vilket krรคver speciell programvara fรถr att รฅterstรคlla det igen

Sammanfattning

  • En distribuerad applikation รคr en applikation som kan kรถras pรฅ flera system i ett nรคtverk
  • Apache Zookeeper รคr en distribuerad koordineringstjรคnst med รถppen kรคllkod som hjรคlper dig att hantera en stor uppsรคttning vรคrdar
  • Det mรถjliggรถr รถmsesidig uteslutning och samarbete mellan serverprocesser
  • Server, klient, ledare, fรถljare, ensemble/Cluster, ZooKeeper WebUI รคr viktiga komponenter fรถr djurskรถtare
  • Tre typer av Znoder รคr Persistens, Ephemeral och sekventiell
  • ZDM-klocka รคr en engรฅngstrigger som skickas till klienten som stรคllt klockan. Det intrรคffade nรคr data frรฅn den klockan รคndras
  • Zookeeper Hadoop anvรคnder ACL:er fรถr att kontrollera รฅtkomsten till sina znoder
  • Hantera konfigurationen, Namngivningstjรคnster., vรคlja ledare, stรคlla meddelanden i kรถ, Hantera aviseringssystemet, Synchronisering, Utdelad Cluster Ledning osv.
  • Yahoo, Facebook, eBay, Twitter, Netflix รคr nรฅgra kรคnda fรถretag som anvรคnder zookeeper
  • Den stรถrsta nackdelen med verktyget รคr att fรถrlust kan intrรคffa om du lรคgger till nya Zookeeper-servrar

Sammanfatta detta inlรคgg med: