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
Archiarquitetura do ZooKeeper
Archiarquitetura do ZooKeeper

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 do Zookeeper
Modelo de dados do 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

ZKS – Estados de Sessão
ZKS – Estados de Sessão
  • 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'

Instale o ZooKeeper

Passo 2) Aceitar Termos e Condições
Na próxima página, Aceite o Contrato de Licença

Instale o ZooKeeper

Passo 3) Mensagem de agradecimento mostrada
Você verá a seguinte mensagem

Instale o ZooKeeper

Passo 4) Clique em Continuar para configurar
Atualize a página após 5 minutos e prossiga para a configuração

Instale o ZooKeeper

Passo 5) Clique em 'Continuar para lançar'
Na próxima tela, inicie o ZooKeeper

Instale 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
  • Facebook
  • eBay
  • Twitter
  • 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