Apache ZooKeeper-handleiding

โšก Slimme samenvatting

Deze Apache ZooKeeper-handleiding introduceert de gecentraliseerde service voor configuratie, naamgeving, synchronisatie en groepsservices in gedistribueerde systemen. LessOns behandelt architectuur, datamodel, watches, ensembles, applicaties, voordelen en nadelen.

  • ๏ธ Coรถrdinatiedienst: ZooKeeper fungeert als een betrouwbare basis voor de coรถrdinatie en consensusvorming van gedistribueerde applicaties.
  • ๐Ÿ—‚๏ธ ZNode-boom: De gegevens worden opgeslagen in een hiรซrarchische naamruimte van ZNodes die lijkt op een bestandssysteem.
  • ๐Ÿ‘€ horloges: Clients abonneren zich op ZNode-gebeurtenissen en ontvangen callbacks wanneer gegevens veranderen of er kinderen verschijnen.
  • ๐Ÿงฉ Ensemble Quorum: Een oneven aantal servers zorgt voor fouttolerantie en schrijfbewerkingen op basis van meerderheid.
  • โšก Gebruik Gevallen: Biedt ondersteuning voor leiderverkiezing, gedistribueerde vergrendelingen, service discovery en configuratiebeheer.
  • ๐Ÿค– AI Cluster Help: AI-assistenten leggen de mogelijke oorzaken van ZooKeeper-fouten uit en genereren Kubernetes-vriendelijke ensemble-configuraties.

ZooKeeper-zelfstudie

Wat is een gedistribueerd systeem?

Een gedistribueerde applicatie is een applicatie die op meerdere systemen in een netwerk kan draaien. Het draait gelijktijdig door zichzelf te coรถrdineren om een โ€‹โ€‹bepaalde taak te voltooien. Deze taken kunnen veel uren duren om te voltooien door een niet-gedistribueerde applicatie.

Wat is Dierenverzorger?

Apache Dierenverzorger is een open source gedistribueerde coรถrdinatieservice die helpt bij het beheren van een groot aantal hosts. Beheer en coรถrdinatie in een gedistribueerde omgeving zijn lastig. Zookeeper automatiseert dit proces en stelt ontwikkelaars in staat zich te concentreren op het bouwen van softwarefuncties in plaats van zich zorgen te maken over de gedistribueerde aard ervan.

Zookeeper helpt u bij het onderhouden van configuratie-informatie, naamgeving, groepsservices voor gedistribueerde applicaties. Het implementeert verschillende protocollen op het cluster, zodat de applicatie niet op zichzelf hoeft te implementeren. Het biedt een enkel samenhangend overzicht van meerdere machines.

Waarom Apache Zookeeper?

Hier zijn belangrijke redenen achter de populariteit van de Zookeeper:

  • Het maakt wederzijdse uitsluiting en samenwerking tussen serverprocessen mogelijk
  • Het zorgt ervoor dat uw applicatie consistent draait.
  • Het transactieproces wordt nooit gedeeltelijk voltooid. Het krijgt de status Succes of Mislukking. De gedistribueerde staat kan worden tegengehouden, maar dat is nooit verkeerd
  • Ongeacht de server waarmee hij verbinding maakt, kan een client hetzelfde beeld van de dienst zien
  • Helpt u bij het coderen van de gegevens volgens de specifieke set regels
  • Het helpt om een โ€‹โ€‹standaard hiรซrarchische naamruimte te behouden die vergelijkbaar is met bestanden en mappen
  • Computers die als รฉรฉn systeem werken en lokaal of geografisch met elkaar verbonden kunnen zijn
  • Het maakt het mogelijk om een โ€‹โ€‹knooppunt in een cluster te verbinden/verlaten en de knooppuntstatus in realtime te bekijken
  • U kunt de prestaties verbeteren door meer machines in te zetten
  • Hiermee kunt u een knooppunt als leider kiezen voor een betere coรถrdinatie
  • ZooKeeper werkt snel met workloads waarbij het lezen van de gegevens vaker voorkomt dan het schrijven ervan

Dierentuinmedewerker Architectuur: Hoe werkt het?

Hier vindt u een korte uitleg over apache Architectuur van de dierentuin:

  • Zookeeper volgt een client-server Architectuur
  • Alle systemen slaan een kopie van de gegevens op
  • Leiders worden bij het opstarten gekozen
Architectuur van ZooKeeper
Architectuur van ZooKeeper

server: De server verzendt een bevestiging wanneer een client verbinding maakt. In het geval dat er geen reactie is van de verbonden server, stuurt de client het bericht automatisch door naar een andere server.

Bedrijf: Client is een van de knooppunten in de gedistribueerde applicatiecluster. Het helpt u om toegang te krijgen tot informatie van de server. Elke client stuurt met regelmatige tussenpozen een bericht naar de server dat de server helpt te weten dat de client actief is.

Leider: Eรฉn van de servers wordt aangewezen als leider. Het geeft alle informatie aan de clients, evenals een bevestiging dat de server leeft. Het voert automatisch herstel uit als een van de verbonden knooppunten faalt.

Volgeling: Het serverknooppunt dat de leiderinstructie volgt, wordt een volger genoemd.

  • Leesverzoeken van klanten worden afgehandeld door de overeenkomstig verbonden Zookeeper-server
  • De schrijfverzoeken van de klant worden afgehandeld door de leider van de Zookeeper.

Ensemble/Cluster: Groep Zookeeper-servers die ensemble of a wordt genoemd ClusterU kunt de ZooKeeper-infrastructuur in de clustermodus gebruiken om het systeem op de optimale waarde te krijgen wanneer u Apache uitvoert.

ZooKeeper WebUI: Als u met het resourcebeheer van ZooKeeper wilt werken, moet u dit gebruiken WebUI. Hiermee kunt u met ZooKeeper werken via de webgebruikersinterface, in plaats van via de opdrachtregel. Het biedt snelle en effectieve communicatie met de ZooKeeper-applicatie.

Het Zookeeper-gegevensmodel (ZDM)

Laten we nu in deze ZooKeeper-tutorial meer leren over het Zookeeper-gegevensmodel. In de onderstaande afbeelding wordt het Apache Zookeeper-gegevensmodel uitgelegd:

Het Zookeeper-gegevensmodel
Gegevensmodel voor dierenverzorgers
  • Het zookeeper-datamodel volgt een hiรซrarchische naamruimte waarin elk knooppunt een ZNode wordt genoemd. Een knooppunt is een systeem waarop de cluster draait.
  • Elke ZNode heeft gegevens. Het kan wel of geen kinderen hebben
  • ZNode-paden:
    • Canoniek, schuine streep gescheiden en absoluut
    • Gebruik geen relatieve verwijzingen
    • Namen kunnen Unicode-tekens bevatten
  • ZNode onderhoudt de statistische structuur en het versienummer voor gegevenswijzigingen.

Soorten Zookeeper-knooppunten

Er zijn drie soorten Znodes:

Volharding znode: Dit type znode blijft bestaan, zelfs nadat de client die die specifieke znode heeft gemaakt, is losgekoppeld. Standaard zijn in zookeeper alle knooppunten persistent als dit niet is opgegeven.

kortstondig znode: Dit type dierenverzorger znode leeft totdat de klant leeft. Wanneer de client de verbinding met de dierenverzorger verbreekt, wordt deze daarom ook verwijderd. Bovendien mogen kortstondige knooppunten geen kinderen krijgen.

Sequential znode: Opeenvolgende znodes kunnen kortstondig of persistent zijn. Dus wanneer een nieuwe znode wordt aangemaakt als een sequentiรซle znode. U kunt het pad van de znode toewijzen door een 10-cijferig volgnummer aan de oorspronkelijke naam toe te voegen.

ZDM-Horloges

Zookeeper, een watch-gebeurtenis is een eenmalige trigger die naar de client wordt gestuurd die watch heeft ingesteld. Het vond plaats wanneer gegevens van die watch veranderen. ZDM watch stelt clients in staat om meldingen te ontvangen wanneer znode verandert. ZDM-leesbewerkingen zoals getData(), getChidleren(), bestaan โ€‹โ€‹hebben de optie om een โ€‹โ€‹watch in te stellen.

Horloges worden besteld, de volgorde van de horlogegebeurtenissen komt overeen met de volgorde van de updates. Een klant kan een watch-gebeurtenis voor znode zien voordat hij de nieuwe gegevens ziet die overeenkomen met die znode.

ZDM- Toegangscontrolelijst

Zookeeper gebruikt ACL's om de toegang tot zijn znodes te controleren. ACL bestaat uit een paar (schema: id, toestemming)

Ingebouwde ACL-schema's:

wereld: heeft รฉรฉn enkele ID, iedereen

auth: Gebruik geen ID, het vertegenwoordigt elke geverifieerde gebruiker

digest: gebruik een gebruikersnaam: wachtwoord

host: Hiermee kunt u de hostnaam van de klant gebruiken als ACL-id-identiteit

IP: gebruik het IP-adres van de clienthost als ACL-id-identiteit

ACL-machtigingen:

  • CREATE
  • LEZEN
  • SCHRIJVEN
  • VERWIJDEREN
  • BEHEERDER

Bijvoorbeeld (IP: 192.168.0.0/16, LEZEN)

De ZKS โ€“ Sessiestaten en levensduur

ZKS โ€“ Sessiestatussen
ZKS โ€“ Sessiestatussen
  • Voordat een verzoek wordt uitgevoerd, is het belangrijk dat de klant een sessie met de service tot stand brengt
  • Alle bewerkingen die clients naar de service sturen, worden automatisch aan een sessie gekoppeld
  • De client kan verbinding maken met elke server in het cluster. Maar hij zal verbinding maken met slechts รฉรฉn server.
  • De sessie biedt โ€œordergarantiesโ€. De verzoeken in de sessie worden uitgevoerd in FIFO-volgorde
  • De belangrijkste statussen voor een sessie zijn 1) Verbonden, 2) Verbonden 3) Gesloten 4) Niet verbonden.

Hoe ZooKeeper te installeren

Stap 1) Klik op Doorgaan met abonneren
Ga hier naartoe link en klik op 'Doorgaan met abonneren'

Installeer ZooKeeper

Stap 2) Accepteer de algemene voorwaarden
Op de volgende pagina accepteert u de licentieovereenkomst

Installeer ZooKeeper

Stap 3) Bedankt bericht weergegeven
U ziet het volgende bericht

Installeer ZooKeeper

Stap 4) Klik op Doorgaan met configureren
Vernieuw de pagina na 5 minuten en ga verder voor configuratie

Installeer ZooKeeper

Stap 5) Klik op 'Doorgaan met starten'
In het volgende scherm start u ZooKeeper

Installeer ZooKeeper

Stap 6) Gefeliciteerd!
Je bent klaar!

Apache ZooKeeper-applicaties

Apache Zookeeper wordt gebruikt voor de volgende doeleinden:

  • Het beheren van de configuratie
  • Naamgevingsdiensten
  • Het kiezen van de leider
  • De berichten in de wachtrij plaatsen
  • Beheer van het notificatiesysteem
  • Synckroning
  • Distributed Cluster Management

Bedrijven die Zookeeper gebruiken

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

Nadelen van het gebruik van Zookeeper

  • Er kan gegevensverlies optreden als u nieuwe Zookeeper-servers toevoegt
  • Geen migratie toegestaan โ€‹โ€‹voor gebruikers
  • Geen ondersteuning bieden voor rackplaatsing en -bekendheid
  • Zookeeper staat niet toe dat u het aantal pods vermindert om onbedoeld gegevensverlies te voorkomen
  • U kunt de service niet naar hostnetwerken overschakelen zonder een volledige herinstallatie wanneer de service op een virtueel netwerk is geรฏmplementeerd
  • De service biedt geen ondersteuning voor veranderende volumevereisten zodra de eerste implementatie voorbij is
  • Er zijn grote aantallen knooppunten bij betrokken, dus er kan meer dan รฉรฉn punt van falen zijn
  • Berichten kunnen verloren gaan in het communicatienetwerk, waarvoor speciale software nodig is om deze weer te herstellen

Veelgestelde vragen

ZooKeeper coรถrdineert gedistribueerde applicaties door consistente configuratie-, naamgevings-, synchronisatie- en leiderverkiezingdiensten te bieden. Het neemt de last weg om deze basisfunctionaliteiten in elk systeem helemaal opnieuw te ontwikkelen.

AI-tools genereren ZooKeeper-configuraties, suggereren de optimale omvang van het cluster en analyseren de ruok- en mntr-statistieken. Ze signaleren risico's op split-brain-situaties en stellen scripts voor gezondheidscontroles voor productieclusters voor.

Ja. AI-assistenten analyseren zookeeper.out-logbestanden, herkennen patronen van quorumverlies en adviseren over het optimaliseren van de sessietime-out. Ze stellen ook draaiboeken op voor gefaseerde herstarts en herstel na snapshots.

Een ensemble is een groep ZooKeeper-servers die samenwerken. Schrijfbewerkingen vereisen een meerderheidsquorum, dus de meeste productieomgevingen gebruiken een oneven aantal servers, zoals drie, vijf of zeven.

Een ZNode is een knooppunt in de ZooKeeper-naamruimte dat kleine hoeveelheden gegevens en metadata opslaat. ZNodes kunnen persistent, ephemeraal of sequentieel zijn, waardoor vergrendelingen en leiderverkiezingen mogelijk zijn.

Kafka 4.0 en de KRaft-modus verwijderen ZooKeeper en vervangen het door een intern, op Raft gebaseerd controllerquorum. Nieuwe implementaties gebruiken KRaft, terwijl oudere clusters ZooKeeper veilig kunnen blijven gebruiken.

ZooKeeper ondersteunt SASL-authenticatie, Kerberos, TLS-transport en op ACL gebaseerde autorisatie. Schakel deze functies in en segmenteer ensembles per tenant om isolatie in gedeelde omgevingen te behouden.

Beginners begrijpen het datamodel en de CLI binnen een week. OperaHet opzetten van een productieomgeving met snapshots, monitoring en Kerberos vergt doorgaans รฉรฉn tot drie maanden praktijkervaring.

Vat dit bericht samen met: