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 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 beheer

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

Samenvatting

  • 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, Klant, Leider, Volger, Ensemble/Cluster, ZooKeeper WebUI zijn belangrijke componenten voor 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 Cluster Beheer, 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