Uso no mundo real do tratador de zoológico [fechado]


122

Eu estive olhando o Zookeeper recentemente e me perguntei se alguém o estava usando atualmente e o que eles estavam usando especificamente para armazenar.

O caso de uso mais comum é para informações de configuração, mas que tipo de dados e quantos dados você está armazenando?


3
Ele faz parte do grupo de tecnologias Hadoop, há um caso de uso do Yahoo aqui bastante bom - developer.yahoo.net/blogs/hadoop/2009/05/…
Jon

Não sei as especificidades de como ele é usado, mas sei que a versão mais recente do HBase (uma implementação de BigTable de código aberto) usa o ZooKeeper.
Leo P

10
Esta pergunta tem mais votos positivos do que todas as respostas combinadas. O tratador precisa de um wiki melhor de uso.
mixdev

1
Confira como a Netflix a usa. github.com/Netflix/curator/wiki/Recipes Curator é a biblioteca de invólucros da Netflix para o ZK.
eSniff

Respostas:


13

A implementação do DOSGi no Apache CXF usa o zookeeper para seu repositório de registro de serviço. Os contêineres individuais têm um pacote de software distribuído (dsw) que escuta todos os eventos de serviço e quando um status de serviço é alterado e possui uma propriedade indicando distribuição. O dsw conversa com o pacote de descoberta que, no caso de implementação de referência, usa o zookeeper para armazenar o serviço como nós efêmeros. Outras instâncias procurarão alterações na estrutura do nó e registrarão proxies em seus sistemas locais. O resultado final é que você pode codificar para OSGi simples e terminar com uma distribuição transparente.



17

O HBase usa o Zookeeper para coordenar atividades pelas quais seu "nó principal" era responsável antes da versão atual. A mudança para o uso do Zookeeper significa que o controle central não é mais um único ponto de falha.

O tratador é muito versátil; Aqui está um exemplo de como usá-lo para criar uma fila simultânea distribuída:

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

Obviamente, você também pode usá-lo para criar bloqueios de recursos, etc., em um sistema distribuído.



10

Norbert é um bom exemplo de um sistema de produção escalável. Em geral, ele integra Netty, Protocol Buffers e Zookeeper em uma estrutura leve para a execução de serviços em cluster. Os buffers de protocolo são usados ​​para especificar a API de serviço, o Netty implementa abstrações da camada de transporte e o Zookeeper é essencialmente um serviço de descoberta tolerante a falhas.

Sempre que uma instância de serviço é iniciada, Norbert a registra como instância disponível de um tipo de serviço específico. Da perspectiva da implementação, ele cria duas árvores do Zookeeper:

  • "/ ServiceName / members", que lista todas as instâncias conhecidas do serviço
  • "/ ServiceName / available", que lista as instâncias atualmente disponíveis do serviço

A propriedade mais importante para cada nó é o URL a ser usado para se conectar à instância de serviço correspondente. Permite o balanceamento de carga no lado do cliente - um cliente Norbert encontra a lista de URLs para um determinado nome de serviço e a tentativa de conectar-se a um deles é de alguma ordem (por exemplo, round-robin ou aleatório).


6

Há um bom artigo ZooKeeper - O rei da coordenação sobre o ZooKeeper no Elastic Cloud.

Na Found, por exemplo, usamos o ZooKeeper extensivamente para descoberta, alocação de recursos, eleição de líderes e notificações de alta prioridade. Neste artigo, apresentaremos a você esse rei da coordenação e veremos de perto como usamos o ZooKeeper no Found



3
  • O Storm é usado por várias empresas (o Twitter e o Groupon são dois dos mais conhecidos) e conta com o Zookeeper.
  • O Kafka é usado pelo Linkedin e conta com o Zookeeper.

O Storm usa o Zookeeper para armazenar todos os estados, para que possa se recuperar de uma interrupção em qualquer um de seus serviços de componentes (distribuídos).

Isso permite que os serviços do componente sejam apátridas e simplesmente baixem ou sincronizem com os servidores do Zookeeper quando forem necessários dados de configuração. Se você já teve que recuperar um servidor de produção, saberá que dor de cabeça pode ser essa!

Os consumidores da fila Kafka podem usar o Zookeeper para armazenar informações (marca d'água alta) sobre o que foi consumido na fila.


2

No meu caso, estamos armazenando arquivos de configuração no conjunto zookeeper para uso do cluster. Estamos usando o esquema líder -> seguidor. Então, quando um tratador está desativado, somos trocados por outro (modo replicado)




1

O datomic usa o apache zookeeper para gerenciar o armazenamento de dados baseado em riak.

Como o Riak suporta apenas consistência eventual no momento, um sistema Datomic em execução no Riak também utiliza o Apache ZooKeeper, um serviço de coordenação altamente disponível. O Datomic usa o ZooKeeper para coordenação de failover do transator e para as poucas chaves por banco de dados que precisam ser atualizadas com o CAS. fonte: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html


0

Aqui estão alguns detalhes de como o HBase usa o ZooKeeper , incluindo informações sobre como eles pretendem usá-lo no futuro. Geralmente eles o utilizam para eliminar o SPOF nos servidores da região através da eleição do Leader implementada usando o ZooKeeper.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.