Apache ZooKeeper Handledning

โšก Smart sammanfattning

Apache ZooKeeper-handledningen introducerar den centraliserade tjรคnsten fรถr konfiguration, namngivning, synkronisering och grupptjรคnster i distribuerade system. LessVi tรคcker arkitektur, datamodell, klockor, ensembler, tillรคmpningar, fรถrdelar och nackdelar.

  • ๐Ÿ›๏ธ Samordningstjรคnst: ZooKeeper fungerar som en pรฅlitlig ryggrad fรถr distribuerad applikationskoordinering och konsensus.
  • ๐Ÿ—‚๏ธ ZNode-trรคd: Data lagras i ett hierarkiskt namnrymd av ZNodes som liknar ett filsystem.
  • ???? Klockor: Klienter prenumererar pรฅ ZNode-hรคndelser och fรฅr รฅteruppringningar nรคr data รคndras eller underordnade objekt visas.
  • ๐Ÿงฉ Ensemblens kvorum: En ensemble av servrar med udda antal ger feltolerans och majoritetsbaserade skrivningar.
  • โšก Anvรคnd fall: Ger mรถjlighet till ledarval, distribuerade lรฅs, tjรคnsteidentifiering och konfigurationshantering.
  • ๐Ÿค– AI Cluster Hjรคlp: AI-assistenter fรถrklarar fellรคgen i ZooKeeper och genererar Kubernetes-vรคnliga ensemble-konfigurationer.

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

Vanliga frรฅgor

ZooKeeper koordinerar distribuerade applikationer genom att tillhandahรฅlla konsekventa konfigurations-, namngivnings-, synkroniserings- och ledarvalstjรคnster. Det eliminerar bรถrdan av att bygga dessa primitiva funktioner frรฅn grunden i varje system.

AI-verktyg genererar ZooKeeper-konfiguration, fรถreslรฅr ensemblestorlekar och analyserar ruok- och mntr-mรฅtt. De flaggar risker fรถr split-brain och fรถreslรฅr hรคlsokontrollskript fรถr produktionskluster.

Ja. AI-assistenter analyserar zookeeper.out-loggar, identifierar mรถnster fรถr kvorumfรถrlust och rekommenderar justering av timeout fรถr sessioner. De utarbetar รคven runbooks fรถr lรถpande omstarter och รฅterstรคllning av รถgonblicksbilder.

En ensemble รคr en grupp ZooKeeper-servrar som kรถrs tillsammans. Skrivningar krรคver en majoritet av nรคrvarande, sรฅ de flesta produktionsinstรคllningar anvรคnder ett udda antal servrar, till exempel tre, fem eller sju.

En ZNode รคr en nod i ZooKeeper-namnrymden som lagrar smรฅ mรคngder data och metadata. ZNodes kan vara persistenta, efemรคra eller sekventiella, vilket mรถjliggรถr lรฅsningar och ledarvalsmรถnster.

Kafka 4.0 och KRaft-lรคget tar bort ZooKeeper och ersรคtter det med ett internt Raft-baserat kontrollkvorum. Nya distributioner anvรคnder KRaft, medan รคldre kluster kan fortsรคtta anvรคnda ZooKeeper sรคkert.

ZooKeeper stรถder SASL-autentisering, Kerberos, TLS-transport och ACL-baserad auktorisering. Aktivera dessa funktioner och segmentera ensembler per hyresgรคst fรถr att upprรคtthรฅlla isolering i delade miljรถer.

Nybรถrjare behรคrskar datamodellen och CLI pรฅ en vecka. OperaAtt kombinera รถgonblicksbilder, รถvervakning och Kerberos med en produktionsensemble tar vanligtvis en till tre mรฅnaders praktisk erfarenhet.

Sammanfatta detta inlรคgg med: