Apache ZooKeeper

Apache ZooKeeper
Utvecklare Apache Software Foundation
Stabil frisättning
3.8.1 / 30 januari 2023 ; 22 dagar sedan ( 2023-01-30 )
Förvar ZooKeeper Repository
Skrivet i Java
Operativ system Cross-plattform
Typ Distribuerad databehandling
Licens Apache-licens 2.0
Hemsida djurskötare .apache .org

Apache ZooKeeper är en öppen källkodsserver för mycket tillförlitlig distribuerad koordinering av molnapplikationer. Det är ett projekt från Apache Software Foundation .

ZooKeeper är i huvudsak en tjänst för distribuerade system som erbjuder ett hierarkiskt nyckel-värdelager , som används för att tillhandahålla en distribuerad konfigurationstjänst , synkroniseringstjänst och namnregister för stora distribuerade system (se Användningsfall ). ZooKeeper var ett underprojekt till Hadoop men är nu ett Apache-projekt på toppnivå i sig.

Översikt

ZooKeepers arkitektur stöder hög tillgänglighet genom redundanta tjänster . Kunderna kan alltså fråga en annan ZooKeeper-ledare om den första inte svarar. ZooKeeper-noder lagrar sina data i ett hierarkiskt namnutrymme, ungefär som ett filsystem eller en träddatastruktur . Klienter kan läsa från och skriva till noderna och på så sätt ha en delad konfigurationstjänst. ZooKeeper kan ses som ett atomärt sändningssystem , genom vilket uppdateringar är helt beställda . ZooKeeper Atomic Broadcast (ZAB)-protokollet är kärnan i systemet.

ZooKeeper används av företag inklusive Yelp , Rackspace , Yahoo! , Odnoklassniki , Reddit , NetApp SolidFire , Meta , Twitter och eBay samt företagssöksystem med öppen källkod som Solr .

ZooKeeper är modellerad efter Googles Chubby lock-tjänst och utvecklades ursprungligen på Yahoo! för att effektivisera processerna som körs på stora datakluster genom att lagra status i lokala loggfiler på ZooKeeper-servrarna. Dessa servrar kommunicerar med klientdatorerna för att ge dem informationen. ZooKeeper utvecklades för att fixa de buggar som uppstod när distribuerade big-data-applikationer distribuerades.

Några av de främsta funktionerna i Apache ZooKeeper är:

  • Pålitligt system: Detta system är mycket pålitligt eftersom det fortsätter att fungera även om en nod misslyckas.
  • Enkel arkitektur: Arkitekturen hos ZooKeeper är ganska enkel eftersom det finns en delad hierarkisk namnrymd som hjälper till att koordinera processerna.
  • Snabb bearbetning: ZooKeeper är särskilt snabb i "läsdominanta" arbetsbelastningar (dvs. arbetsbelastningar där läsning är mycket vanligare än skrivning).
  • Skalbar: Prestandan hos ZooKeeper kan förbättras genom att lägga till noder.

Arkitektur

Några vanliga terminologier angående ZooKeeper-arkitekturen:

  • Nod: Systemen installerade på klustret
  • ZNode: Noderna där statusen uppdateras av andra noder i klustret
  • Klientapplikationer: Verktygen som interagerar med de distribuerade applikationerna
  • Serverapplikationer: Tillåter klientapplikationerna att interagera med ett gemensamt gränssnitt

Tjänsterna i klustret replikeras och lagras på en uppsättning servrar (kallas en "ensemble"), som var och en upprätthåller en databas i minnet som innehåller hela dataträdet för tillståndet samt en transaktionslogg och ögonblicksbilder som lagras konstant. Flera klientapplikationer kan ansluta till en server och varje klient upprätthåller en TCP-anslutning genom vilken den skickar förfrågningar och hjärtslag och tar emot svar och tittar på händelser för övervakning.

Användningsfall

Typiska användningsfall för ZooKeeper är:

Klientbibliotek

Utöver klientbiblioteken som ingår i ZooKeeper-distributionen finns ett antal tredjepartsbibliotek som Apache Curator och Kazoo tillgängliga som gör användningen av ZooKeeper enklare, lägger till ytterligare funktionalitet, ytterligare programmeringsspråk, etc.

Apache-projekt med ZooKeeper

Se även

externa länkar