Tutorial do ZooKeeper: O que é, Archiarquitetura do Apache ZooKeeper
O que é um sistema distribuído?
Um aplicativo distribuído é um aplicativo que pode ser executado em vários sistemas em uma rede. Ele funciona simultaneamente, coordenando-se para concluir uma determinada tarefa. Essas tarefas podem levar muitas horas para serem concluídas por qualquer aplicativo não distribuído.
O que é o Zookeeper?
Zelador do Zoológico Apache é um serviço de coordenação distribuída de código aberto que ajuda a gerenciar um grande conjunto de hosts. O gerenciamento e a coordenação em um ambiente distribuído são complicados. O Zookeeper automatiza esse processo e permite que os desenvolvedores se concentrem na construção de recursos de software, em vez de se preocuparem com sua natureza distribuída.
Zookeeper ajuda você a manter informações de configuração, nomenclatura e serviços de grupo para aplicativos distribuídos. Ele implementa diferentes protocolos no cluster para que o aplicativo não seja implementado por conta própria. Ele fornece uma visão única e coerente de várias máquinas.
Por que Apache Zookeeper?
Aqui estão razões importantes por trás da popularidade do Zookeeper:
- Permite exclusão mútua e cooperação entre processos de servidor
- Ele garante que seu aplicativo seja executado de forma consistente.
- O processo de transação nunca é concluído parcialmente. É dado o status de Sucesso ou fracasso. O estado distribuído pode ser mantido, mas nunca está errado
- Independentemente do servidor ao qual ele se conecta, um cliente poderá ter a mesma visão do serviço
- Ajuda você a codificar os dados de acordo com o conjunto específico de regras
- Ajuda a manter um namespace hierárquico padrão semelhante a arquivos e diretórios
- Computadores, que funcionam como um sistema único que pode ser conectado local ou geograficamente
- Permite ingressar/sair do nó em um cluster e status do nó em tempo real
- Você pode aumentar o desempenho implantando mais máquinas
- Permite eleger um nó como líder para melhor coordenação
- O ZooKeeper funciona rapidamente com cargas de trabalho em que leituras de dados são mais comuns do que gravações
Funcionário do zoológico Archiestrutura: Como funciona?
Aqui está uma breve explicação sobre apache Arquitetura do tratador:
- Zookeeper segue um cliente-servidor Archiarquitetura
- Todos os sistemas armazenam uma cópia dos dados
- Líderes são eleitos na startup
Servidor: O servidor envia uma confirmação quando qualquer cliente se conecta. Caso não haja resposta do servidor conectado, o cliente redireciona automaticamente a mensagem para outro servidor.
Cliente: o cliente é um dos nós no cluster de aplicativos distribuídos. Ajuda você a acessar informações do servidor. Cada cliente envia uma mensagem ao servidor em intervalos regulares que ajuda o servidor a saber que o cliente está ativo.
líder: Um dos servidores é designado Líder. Fornece todas as informações aos clientes, bem como um reconhecimento de que o servidor está ativo. Ele executaria a recuperação automática se algum dos nós conectados falhasse.
Seguidor: O nó do servidor que segue a instrução do líder é chamado de seguidor.
- As solicitações de leitura do cliente são tratadas pelo servidor Zookeeper conectado correspondentemente
- As solicitações de gravação do cliente são tratadas pelo líder Zookeeper.
Conjunto/Cluster: Grupo de servidores Zookeeper chamado ensemble ou a Cluster. Você pode usar a infraestrutura do ZooKeeper no modo de cluster para ter o sistema no valor ideal quando estiver executando o Apache.
UI do ZooKeeper: Se você quiser trabalhar com o gerenciamento de recursos do ZooKeeper, precisará usar WebUI. Ele permite trabalhar com o ZooKeeper usando a interface de usuário da web, em vez de usar a linha de comando. Oferece comunicação rápida e eficaz com o aplicativo ZooKeeper.
O modelo de dados do Zookeeper (ZDM)
Agora, neste tutorial do ZooKeeper, vamos aprender sobre o modelo de dados do Zookeeper. A figura abaixo explica o modelo de dados Apache Zookeeper:
- O modelo de dados zookeeper segue um namespace hierárquico onde cada nó é chamado de ZNode. Um nó é um sistema onde o cluster é executado.
- Cada ZNode possui dados. Pode ou não ter filhos
- Caminhos ZNode:
- Canônico, separado por barra e absoluto
- Não use nenhuma referência relativa
- Os nomes podem ter caracteres Unicode
- ZNode mantém a estrutura estatística e o número de versão para alterações de dados.
Tipos de nós Zookeeper
Existem três tipos de Znodes:
Persistência znode: Este tipo de znode permanece ativo mesmo depois que o cliente que criou aquele znode específico é desconectado. Por padrão, no zookeeper, todos os nós são persistentes se não for especificado.
Efêmero znode: Este tipo de znode zookeeper permanece ativo até que o cliente esteja ativo. Portanto, quando o cliente se desconectar do zookeeper, ele também será excluído. Além disso, os nós efêmeros não podem ter filhos.
Seqüencial znode: znodes sequenciais podem ser efêmeros ou persistentes. Portanto, quando um novo znode é criado como um znode sequencial. Você pode atribuir o caminho do znode anexando um número de sequência de 10 dígitos ao nome original.
ZDM - Relógios
Zookeeper, um evento de observação é um gatilho único que é enviado ao cliente que configurou a observação. Ocorreu quando os dados desse relógio foram alterados. O relógio ZDM permite que os clientes recebam notificações quando o znode for alterado. Operações de leitura ZDM como getData(), getChidleren(), existem e têm a opção de definir um relógio.
Os relógios são ordenados, a ordem dos eventos de observação corresponde à ordem das atualizações. Um cliente poderá ver um evento de observação para znode antes de ver os novos dados que correspondem a esse znode.
ZDM - lista de controle de acesso
Zookeeper usa ACLs para controlar o acesso aos seus znodes. ACL é composta por um par de (Esquema: id, permissão)
Construir em esquemas ACL:
mundo: tem um único id, qualquer um
auth: Não usa nenhum id, representa qualquer usuário autenticado
resumo: use um nome de usuário: senha
host: permite que você use o nome do host do cliente como identidade de ID da ACL
IP: use o endereço IP do host do cliente como identidade de ID da ACL
Permissões ACL:
- CRIAR
- LER
- ESCREVA
- EXCLUIR
- ADMIN
Ex (IP: 192.168.0.0/16, LEIA)
O ZKS – Estados de Sessão e Tempo de Vida
- Antes de executar qualquer solicitação, é importante que o cliente estabeleça uma sessão com o serviço
- Todos os clientes de operações enviados para o serviço são automaticamente associados a uma sessão
- O cliente pode se conectar a qualquer servidor do cluster. Mas ele se conectará a apenas um único servidor
- A sessão fornece “garantias de pedido”. As solicitações na sessão são executadas na ordem FIFO
- Os principais estados de uma sessão são 1) Conectando, 2) Conectado 3) Fechado 4) Não conectado.
Como instalar o ZooKeeper
Passo 1) Clique em Continuar para se inscrever
Vá para isto link e clique em 'Continuar a se inscrever'
Passo 2) Aceitar Termos e Condições
Na próxima página, Aceite o Contrato de Licença
Passo 3) Mensagem de agradecimento mostrada
Você verá a seguinte mensagem
Passo 4) Clique em Continuar para configurar
Atualize a página após 5 minutos e prossiga para a configuração
Passo 5) Clique em 'Continuar para lançar'
Na próxima tela, inicie o ZooKeeper
Passo 6) Parabéns!
Você terminou!
Aplicativos Apache ZooKeeper
Apache Zookeeper usado para os seguintes propósitos:
- Gerenciando a configuração
- Serviços de nomeação
- Escolhendo o líder
- Enfileirando as mensagens
- Gerenciando o sistema de notificação
- Synchronização
- Distribuído Cluster Gestão de Sistemas
Empresas que usam o Zookeeper
- Yahoo
- eBay
- Netflix
- Zynga
- Nutanix
Desvantagens de usar o Zookeeper
- Pode ocorrer perda de dados se você estiver adicionando novos servidores Zookeeper
- Nenhuma migração permitida para usuários
- Não oferecer suporte para posicionamento e conscientização do Rack
- O Zookeeper não permite reduzir o número de pods para evitar perda acidental de dados
- Não é possível mudar o serviço para hospedar a rede sem uma reinstalação completa quando o serviço é implantado em uma rede virtual
- O serviço não oferece suporte à alteração dos requisitos de volume após o término da implantação inicial
- Há um grande número de nós envolvidos, portanto pode haver mais de um ponto de falha
- As mensagens podem ser perdidas na rede de comunicação, o que requer software especial para recuperá-las novamente
Resumo
- Um aplicativo distribuído é um aplicativo que pode ser executado em vários sistemas em uma rede
- Apache Zookeeper é um serviço de coordenação distribuída de código aberto que ajuda a gerenciar um grande conjunto de hosts
- Permite exclusão mútua e cooperação entre processos de servidor
- Servidor, Cliente, Líder, Seguidor, Conjunto/Cluster, ZooKeeper WebUI são componentes importantes do zookeeper
- Três tipos de Znodes são Persistência, Efêmero e Sequencial
- A observação ZDM é um gatilho único que é enviado ao cliente que configurou a observação. Ocorreu quando os dados desse relógio foram alterados
- Zookeeper Hadoop usa ACLs para controlar o acesso aos seus znodes
- Gerenciando a configuração, Nomeando serviços., Selecionando o líder, Enfileirando as mensagens, Gerenciando o sistema de notificação, Synccronização, distribuída Cluster Gestão, etc
- Yahoo, Facebook, eBay, Twitter, Netflix algumas empresas conhecidas usam o zookeeper
- A principal desvantagem da ferramenta é que pode ocorrer perda se você adicionar novos servidores Zookeeper