Apache zookeeper e bancos de dados nosql
Um grande conjunto de bancos de dados NoSQL é uma coisa difícil de manejar para gerenciar. Apache Zookeeper para o resgate! Manter o controle de quais nós estão no cluster, os dados que cada um é gerenciar e garantir que os novos mestres são selecionados quando um mestre falhar não são tarefas fáceis.
Coordenando grandes sistemas distribuídos é, portanto, muito difícil. Ambos Hadoop e bancos de dados NoSQL distribuídos precisa encontrar uma maneira para gerenciar a configuração de um cluster inteiro. Este processo também precisa ser altamente disponível de modo que não é o ponto único de falha no sistema global.
Este é o lugar onde Apache Zookeeper entra. Zookeeper fornece um serviço de coordenação consistente transacional distribuído.
Vários outros produtos de uso Zookeeper para gerenciamento de cluster:
Apache Hadoop
Solr Nuvem
Neo4j
Accumulo
HBase
Rackspace
Zynga
Yahoo! (para vários de seus serviços)
Zookeeper fornece uma estrutura de armazenamento hierárquico na memória que é semelhante a um sistema de arquivos do computador. Esta estrutura é gerida pelo mestre Zookeeper corrente e replicadas entre os outros nós no cluster. Um conjunto é chamado uma Zookeeper Zelador do zológico ensemble.
Apenas o mestre gerencia as atualizações (escreve) para armazenamento. Estas mudanças são checkpointed em disco para torná-los durável e, em seguida, replicada para os outros casos Zookeeper no conjunto.
Estes serviços armazenar seus dados de configuração de cluster em Zookeeper. Alguns deles armazenar os intervalos de chaves para cacos de sua base de dados, também. Isso permite que os clientes que estão utilizando um banco de dados NoSQL que usa Zookeeper para se comunicar com qualquer servidor Zookeeper no conjunto. Desta forma, os clientes podem descobrir quais servidores NoSQL manter os dados de que está interessado.
Olhando para cima qual nó lojas que gama chave minimiza a carga nos servidores NoSQL, porque eles não precisam de transmitir pedidos de dados de um nó NoSQL para o nó que prende realmente os dados.
Você também pode usar o armazenamento de dados do Zookeeper para armazenamento efêmero (armazenamento que não vai durar para além de um reinício do serviço), que é útil para armazenar sessão ou outros dados de tempo de execução.
servidores Zookeeper usar esse armazenamento efêmero para determinar quem assume se um mestre falhar. Cada servidor cria um znode efêmera numerada (arquivo de armazenamento) no espaço chave. Se o mestre Zookeeper (líder) sofre uma falha de hardware, em seguida, o proprietário da próxima znode na seqüência se torna o mestre. Esta é uma solução elegante e evita o efeito “manada”, onde todos os servidores comunicar freneticamente uns com os outros por alguns segundos para selecionar um novo mestre.
Zookeeper é uma grande solução Java para os problemas inerentes à gestão de sistemas de coordenadas e alta disponibilidade. Você pode usá-lo para implementar serviços altamente disponíveis, incluindo serviços de mensagens. Então, se você precisa criar um novo serviço distribuído, considere o uso Zookeeper.