ZooKeeper-tutorial: wat is, Architectuur van Apache ZooKeeper

Wat is een gedistribueerd systeem?

Een gedistribueerde applicatie is een applicatie die op meerdere systemen in een netwerk kan draaien. Het draait gelijktijdigneomeestal door zichzelf te coördineren om een ​​bepaalde taak te voltooien. Het kan voor elke niet-gedistribueerde toepassing voldoende uren duren om deze taken uit te voeren.

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 en groepsservices voor gedistribueerde applicaties. Het implementeert verschillende protocollen op het cluster, zodat de applicatie niet zelfstandig kan worden geïmplementeerd. Het biedt één samenhangend beeld 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 hier te handhavenarchical naamruimte vergelijkbaar met bestanden en mappen
  • Computers die als één systeem werken en lokaal of geografisch met elkaar verbonden kunnen zijn
  • Het maakt het mogelijk om in realtime een knooppunt in een cluster en de knooppuntstatus aan te sluiten of te verlaten
  • 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 Dierentuinmedewerker archistructuur:

  • 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.

CLIËNT: Client is een van de knooppunten in het gedistribueerde applicatiecluster. Het helpt u toegang te krijgen tot informatie van de server. Elke client stuurt met regelmatige tussenpozen een bericht naar de server, waardoor de server weet dat de client nog leeft.

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 een cluster wordt genoemd. U kunt de ZooKeeper-infrastructuur in de clustermodus gebruiken om het systeem op de optimale waarde te krijgen wanneer u Apache gebruikt.

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 gegevensmodel van de dierenverzorger volgt een hiërarchische naamruimte waarbij elk knooppunt een ZNode wordt genoemd. Een knooppunt is een systeem waarop het 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 wordt verzonden naar de client die de watch heeft ingesteld. Het gebeurde toen de gegevens van dat horloge veranderden. Met ZDM Watch kunnen klanten meldingen ontvangen wanneer znode verandert. ZDM-leesbewerkingen zoals getData(), getChidleren(), bestaan ​​de mogelijkheid om een ​​horloge 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 worden uitgevoerd, worden automatisch aan een sessie gekoppeld
  • De client kan verbinding maken met elke server in het cluster. Maar het maakt slechts verbinding met één enkele 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
Je zult het volgende zienwing 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 gebruikt voor following doeleinden:

  • Het beheren van de configuratie
  • Naamgevingsdiensten
  • Het kiezen van de leider
  • De berichten in de wachtrij plaatsen
  • Beheer van het notificatiesysteem
  • Synckroning
  • Gedistribueerd clusterbeheer

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 niet overschakelen naar een hostnetwerk zonder een volledige herinstallatie wanneer de service op een virtueel netwerk wordt 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 storingspunt zijn
  • Berichten kunnen verloren gaan in het communicatienetwerk, waarvoor speciale software nodig is om deze weer te herstellen

Samengevat

  • Een gedistribueerde applicatie is een applicatie die op meerdere systemen in een netwerk kan draaien
  • Apache Zookeeper is een open source gedistribueerde coördinatieservice waarmee u een groot aantal hosts kunt beheren
  • Het maakt wederzijdse uitsluiting en samenwerking tussen serverprocessen mogelijk
  • Server, Client, Leader, Follower, Ensemble/Cluster, ZooKeeper WebUI zijn belangrijke componenten van de dierenverzorger
  • Drie soorten Znodes zijn persistentie, kortstondig en sequentieel
  • ZDM-watch is een eenmalige trigger die wordt verzonden naar de client die de watch heeft ingesteld. Het gebeurde toen de gegevens van dat horloge veranderden
  • Zookeeper Hadoop gebruikt ACL's om de toegang tot zijn znodes te controleren
  • De configuratie beheren, services een naam geven, de leider selecteren, de berichten in de wachtrij plaatsen, het notificatiesysteem beheren, Syncronisatie, gedistribueerd clusterbeheer, enz.
  • Yahoo, Facebook, eBay, Twitter, Netflix zijn enkele bekende bedrijven die dierenverzorger gebruiken
  • Het belangrijkste nadeel van de tool is dat er verlies kan optreden als u nieuwe Zookeeper-servers toevoegt