Uso nel mondo reale di Zookeeper [chiuso]


122

Recentemente ho esaminato Zookeeper e mi sono chiesto se qualcuno lo stesse usando attualmente e cosa lo stessero usando specificamente per l'archiviazione.

Il caso d'uso più comune riguarda le informazioni di configurazione, ma che tipo di dati e quanti dati stai archiviando?


3
Rientra nel gruppo di tecnologie Hadoop, c'è un caso d'uso da Yahoo qui che è abbastanza buono - developer.yahoo.net/blogs/hadoop/2009/05/…
Jon

Non conosco le specifiche di come viene utilizzato, ma so che l'ultima versione di HBase (un'implementazione di BigTable open source) utilizza ZooKeeper.
Leo P,

10
Questa domanda ha più voti positivi di tutte le risposte combinate. Zookeeper ha bisogno di un wiki del caso d'uso migliore.
mixdev

1
Guarda come lo usa Netflix. github.com/Netflix/curator/wiki/Recipes Curator è la libreria wrapper di Netflix per ZK.
eSniff

Controlla questo articolo: stackextend.com/zookeeper/…
Mouad EL Fakir

Risposte:


13

L' implementazione Apache CXF di DOSGi utilizza zookeeper per il suo repository di registrazione del servizio. I singoli contenitori hanno un bundle di software distribuito (dsw) che ascolta tutti gli eventi di servizio e quando lo stato di un servizio cambia che ha una proprietà che indica la distribuzione. Il dsw dialoga con il discovery bundle che, nel caso di implementazione di riferimento, utilizza zookeeper per archiviare il servizio come nodi effimeri. Altre istanze cercheranno le modifiche alla struttura del nodo e registreranno i proxy sui loro sistemi locali. Il risultato finale è che puoi programmare in OSGi semplice e finire con una distribuzione trasparente.



17

HBase usa Zookeeper per coordinare le attività di cui era responsabile il "nodo principale" prima della versione corrente. Il passaggio all'utilizzo di Zookeeper significa che il controllo centrale non è più un singolo punto di errore.

Zookeeper è molto versatile; ecco un esempio di come utilizzarlo per creare una coda simultanea distribuita:

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/

Ovviamente puoi anche usarlo per creare blocchi di risorse, ecc. In un sistema distribuito.



10

Norbert è un buon esempio di un sistema di produzione scalabile. In generale, integra Netty, Protocol Buffers e Zookeeper in un framework leggero per l'esecuzione di servizi cluster. I buffer di protocollo vengono utilizzati per specificare l'API del servizio, Netty implementa astrazioni a livello di trasporto e Zookeeper è essenzialmente un servizio di rilevamento a tolleranza d'errore.

Ogni volta che viene avviata un'istanza di servizio Norbert la registra come istanza disponibile di un particolare tipo di servizio. Dal punto di vista dell'implementazione, crea due alberi Zookeeper:

  • "/ ServiceName / members" che elenca tutte le istanze note del servizio
  • "/ ServiceName / available" che elenca le istanze attualmente disponibili del servizio

La proprietà più importante per ogni nodo è l'URL da utilizzare per connettersi all'istanza del servizio corrispondente. Abilita il bilanciamento del carico lato client: un client Norbert trova l'elenco di URL per un dato nome di servizio e tenta di connettersi a uno di essi in un certo ordine (ad esempio round-robin o casuale).


6

C'è un buon articolo ZooKeeper - The King of Coordination su ZooKeeper su Elastic Cloud.

In Found, ad esempio, utilizziamo ampiamente ZooKeeper per la scoperta, l'allocazione delle risorse, l'elezione dei leader e le notifiche ad alta priorità. In questo articolo, ti presenteremo questo Re del coordinamento e esamineremo da vicino come utilizziamo ZooKeeper in Found



3
  • Storm è utilizzato da numerose società (Twitter e Groupon sono due delle più note) e si affida a Zookeeper.
  • Kafka è utilizzato da Linkedin e si affida a Zookeeper.

Storm utilizza Zookeeper per archiviare tutto lo stato in modo che possa ripristinarsi da un'interruzione in uno dei suoi servizi componenti (distribuiti).

Ciò consente ai servizi componenti di essere senza stato e di scaricare o sincronizzare semplicemente con i server Zookeeper quando sono necessari i dati di configurazione. Se hai mai dovuto ripristinare un server di produzione, saprai quanto può essere un mal di testa!

I consumatori della coda Kafka possono utilizzare Zookeeper per archiviare informazioni (high water mark) su ciò che è stato consumato dalla coda.


2

Nel mio caso stiamo archiviando i file di configurazione in un insieme di guardiani dello zoo per l'utilizzo del cluster. Stiamo usando lo schema leader -> follower. Quindi quando un guardiano dello zoo più in basso passiamo a un altro (modalità replicata)




1

datomic utilizza apache zookeeper per gestire l'archiviazione dei dati basata su riak.

Poiché Riak supporta solo l'eventuale coerenza in questo momento, un sistema Datomic in esecuzione su Riak utilizza anche Apache ZooKeeper, un servizio di coordinamento altamente disponibile. Datomic utilizza ZooKeeper per il coordinamento del failover dei transactor e per la manciata di chiavi per database che devono essere aggiornate con CAS. fonte: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.