2009-09-25 12 views
120

Ho guardato allo Zookeeper di recente e mi chiedevo se qualcuno lo stesse usando al momento e cosa lo stessero usando in modo specifico per la memorizzazione.Uso del guardiano del mondo reale

Il caso di utilizzo più comune è per le informazioni di configurazione, ma che tipo di dati e quanti dati vengono archiviati?

+3

Fa parte del gruppo di tecnologie Hadoop, c'è un caso d'uso da Yahoo qui che è abbastanza buono - http://developer.yahoo.net/blogs/hadoop/2009/05/using_zookeeper_to_tame_system.html – Jon

+9

Questa domanda ha più voti di tutte le risposte combinate. Zookeeper ha bisogno di un wiki migliore per l'uso. – mixdev

+1

Scopri come Netflix lo utilizza. https: // GitHub.it/Netflix/curator/wiki/Recipes Curator è la libreria di wrapper di Netflix per ZK. – eSniff

risposta

13

Il Apache CXF implementation di DOSGi utilizza zookeeper per il proprio archivio di registrazione dei servizi. I singoli contenitori dispongono di un bundle distribuito di software (dsw) che ascolta tutti gli eventi di servizio e quando cambia lo stato di un servizio con una proprietà che indica la distribuzione. Il dsw parla con il pacchetto di scoperta che, nel caso di implementazione di riferimento, utilizza lo zoo per memorizzare il servizio come nodi effimeri. Altre istanze cercheranno modifiche alla struttura del nodo e registreranno i proxy sui loro sistemi locali. Il risultato finale è che puoi codificare su OSGi normale e finire con una distribuzione trasparente.

1

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

16

HBase utilizza Zookeeper per le attività di coordinamento del suo "nodo principale" responsabile 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 usarlo per costruire una coda concomitante distribuita:

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

Ovviamente si può utilizzare anche per creare blocchi di risorse, ecc, in un sistema distribuito.

0

Ecco alcuni detail on how HBase uses ZooKeeper, comprese le informazioni su come intendono utilizzarlo in futuro. Generalmente lo usano per eliminare SPOF sui server della regione tramite elezioni Leader implementate usando ZooKeeper.

4

Solr è anche working to integrate ZooKeeper. Qui puoi vedere che stanno usando per la configurazione dinamica, sharding, eliminazione SPOF (elezione master/slave), riequilibrio, ecc.

9

Norbert è un buon esempio da 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 del protocollo sono utilizzati per specificare l'API del servizio, Netty implementa le astrazioni del livello di trasporto e Zookeeper è essenzialmente un servizio di rilevamento fault-tolerant.

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'attuazione, crea due alberi Zookeeper:

  • "/ ServiceName/soci" che elenca tutti i casi noti del servizio
  • "/ NomeServizio/disponibile" che elenca i casi 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 sul lato client: un client Norbert trova l'elenco di URL per un determinato nome di servizio e tenta di connettersi a uno di essi è un certo ordine (ad esempio round-robin o random).

13

vecchia questione, ma dal momento che la pagina viene in su prima su una ricerca su Google per i casi d'uso zookeeper, ho pensato che sarebbe stato meglio per dare un elenco aggiornato

  1. wikipedia
  2. zookeeper wiki
  3. real users
3
  • Storm è utilizzato da un number of companies (Twitter e Groupon essendo due dei più noti) e si basa su Zookeeper.
  • Kafka è utilizzato da Linkedin e si basa su Zookeeper.

Storm utilizza Zookeeper per immagazzinare tutto lo stato in modo che possa recuperare da un guasto in una delle sue (distribuite) Servizi componenti.

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

Kafka coda gli utenti possono utilizzare Zookeeper per archiviare le informazioni (high water mark) su ciò che è stato consumato dalla coda.

1

datomic utilizza apache zookeeper per gestire la memorizzazione dei dati basata su riak.

Poiché Riak supporta solo un'eventuale coerenza in questo momento, un sistema Datomic in esecuzione su Riak utilizza anche Apache ZooKeeper, un servizio di coordinamento ad alta disponibilità. Datomic utilizza ZooKeeper per il coordinamento del failover degli operatori 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

-2

Zookeeper non è per la memorizzazione dei dati, è solo per la memorizzazione di nodi. Viene utilizzato per verificare se il client è disponibile o meno.

2

Nel mio caso stiamo memorizzando i file di configurazione in ensemble zookeeper per l'utilizzo del cluster. Stiamo usando leader -> schema follower. Quindi, quando uno zookeeper viene spento, ne viene cambiato uno (modalità replicata)

Problemi correlati