Video: SolrCloud: the 'Search First' NoSQL database 2025
En stor gruppe NoSQL-databaser er en uhåndterlig ting å håndtere. Apache Zookeeper til redning! Å holde oversikt over hvilke noder som er i klyngen, hvilke data hver administrerer, og sikre at nye mestere blir valgt når en mester feiler, er ikke enkle oppgaver.
Koordinering av store distribuerte systemer er derfor svært vanskelig. Både Hadoop og distribuerte NoSQL-databaser trenger en måte å administrere konfigurasjonen av en hel klynge på. Denne prosessen må også være svært tilgjengelig, slik at det ikke er et eneste punkt i feil i det totale systemet.
Dette er hvor Apache Zookeeper kommer inn. Zookeeper tilbyr en distribuert, transaksjonelt konsekvent koordineringstjeneste.
Flere andre produkter bruker Zookeeper for klusteradministrasjon:
-
Apache Hadoop
-
Solr Cloud
-
Neo4j
-
Akkumulo
-
HBase
-
Rackspace
-
Zynga
-
Yahoo! (for flere av sine tjenester)
Zookeeper gir en hierarkisk lagringsstruktur i minnet som ligner på et datafilsystem. Denne strukturen styres av den nåværende Zookeeper-mesteren og replikeres blant de andre noder i klyngen. En Zookeeper-klynge kalles en Zookeeper e nsemble.
Bare mesteren administrerer oppdateringer (skriver) til lagring. Disse endringene er kontrollert til disken for å gjøre dem holdbare og deretter kopiert til de andre Zookeeper-instansene i ensemblet.
Disse tjenestene lagrer deres klusterkonfigurasjonsdata i Zookeeper. Noen av dem lagrer nøkkelområdene for skjæringer i databasen deres også. Dette gjør det mulig for klienter som bruker en NoSQL-database som bruker Zookeeper til å kommunisere med noen Zookeeper-server i ensemblet. På denne måten kan kundene oppdage hvilke NoSQL-servere som holder dataene de er interessert i.
Ser opp hvilke noder som lagrer hvilket nøkkelområde som minimerer belastningen på NoSQL-serverne, fordi de ikke trenger å videresende forespørsler om data fra en NoSQL-node til noden som faktisk inneholder dataene.
Du kan også bruke Zookeeper's datalagring for ephemeral storage (lagring som ikke varer lenger enn en omstart av tjenesten), som er nyttig for lagring av økt eller annen runtime data.
Zookeeper-servere bruker denne ephemeral storage for å avgjøre hvem som overtar hvis en mester mislykkes. Hver server lager en nummerert ephemeral znode (lagringsfil) i nøkkelrommet. Hvis Zookeeper master (leder) lider av en maskinvarefeil, blir eieren av neste znode i sekvensen mesteren. Dette er en elegant løsning og unngår "besetning" -effekten der alle servere kommuniserer frantically med hverandre i noen sekunder for å velge en ny mester.
Zookeeper er en flott Java-løsning på problemene knyttet til koordinert systemadministrasjon og høy tilgjengelighet. Du kan bruke den til å implementere svært tilgjengelige tjenester, inkludert meldingstjenester. Så, hvis du trenger å opprette en ny distribuert tjeneste, bør du vurdere å bruke Zookeeper.
