Apache Zookeeper e NoSQL Databases
Um grande conjunto de bancos de dados NoSQL é uma coisa difícil de manejar para gerir. Apache Zookeeper para o resgate! Manter o controle de quais nós são no cluster, os dados que cada um é gerenciar e garantir que os novos mestres são selecionadas 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 necessita de ser altamente disponível de modo que não é único ponto de falha no sistema global.
Este é o lugar onde Apache Zookeeper entra. Zookeeper fornece um serviço de coordenação transacional consistente distribuído.
Vários outros produtos de uso Zookeeper para a gestão de cluster:
Apache Hadoop
Solr Nuvem
Neo4j
Accumulo
HBase
Rackspace
Zynga
Yahoo! (por vários de seus serviços)
Zookeeper fornece uma estrutura de armazenamento hierárquica na memória que é semelhante a um sistema de arquivos do computador. Esta estrutura é gerida pelo capitão Zookeeper atual e replicadas entre os outros nós no cluster. Um conjunto é chamado uma Zookeeper Zookeeper ensemble.
Apenas o mestre gerencia as atualizações (gravações) para armazenamento. Estas mudanças são checkpointed em disco para torná-los duráveis 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 mantenha os dados de que está interessado.
Olhando para cima qual nó lojas que faixa de teclas 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 em tempo de execução.
servidores Zookeeper usar esse armazenamento efêmero para determinar quem assume se um mestre falhar. Cada servidor cria uma 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 sequência torna-se o mestre. Esta é uma solução elegante e evita o # 147 rebanho # 148- efeito, 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.