Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

O serviço de indexação na plataforma é realizado pelo Apache® Solr. Em um ambiente de alta disponibilidade, são necessárias mais máquinas com este serviço rodando para, no caso de uma delas falhar, ter outra(s) para continuar processando as requisições, e, neste caso, o gerenciamento destas requisições é realizado pelo Apache® ZookeeperZooKeeper.

Com isso, para garantir a alta disponibilidade desta funcionalidade, é necessário que exista redundância em ambos os serviços: Apache® Solr para indexação/busca e Apache® Zookeeper para ZooKeeper para gerenciamenteo das configurações e das requisições.

O princípio de funcionamento do Apache® Zookeeper é ZooKeeper é baseado em quorum, ou seja, é necessário que a maioria (>50%) dos servidores estejam disponíveis para o processamento das requisições.

Por exemplo, se existirem apenas dois servidores e um deles ficar indisponível, apenas 50% dos servidores estarão saudáveis, e como isso não é a maioria, o cluster será incapaz de processar as requisições. Por outro lado, se existirem três servidores e um ficar indisponível, ainda restarão dois saudáveis, ou 66%, que atende ao critério de maioria. Por isso é recomendado um número ímpar de servidores executando o Apache® ZookeeperZooKeeper.


Configurando o Apache®

...

ZooKeeper

O primeiro passo é efetuar o download da versão 3.4.10 do Apache® ZookeeperZooKeeper, que pode ser obtida aqui: https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/

...

  • tickTime: corresponde ao tempo em milisegundos entre cada tick, sendo que uma das validações para determinar se um nó está disponível é de dois ticks (similar ao ping para verificar se uma máquina é encontrada na rede). Se dois ticks consecutivos não obtiverem resposta, ocorre timeout e a máquina é considerada indisponível.
  • dataDir: aponta o diretório onde serão armazenadas as informações referentes ao cluster. No início este diretório deve estar vazio mas com permissão de escrita pelo usuário que irá iniciar o ZooKeeper.
  • clientPort: corresponde à porta que será utilizada pelo Apache® Solr.
  • initLimit: quantidade de tempo (em ticks) para que uma máquina com zookeeper se ZooKeeper se conecte e sincronize com a máquina que foi eleita líder. Neste caso, são 5 ticks com 2000 milisegundos cada, totalizando 10 segundos. Este valor pode ser incrementado sob demanda, se a quantidade de informações gerenciadas pelo zookeeper for ZooKeeper for elevada.
  • syncLimit: quantidade de tempo (em ticks) que uma máquina com zookeeper pode ZooKeeper pode estar atrasada em relação à líder. Se uma máquina não conseguir sincronizar com a líder neste intervalo, ela será descartada do cluster.
  • server.X: Estes são os IDs e localização (endereço IP na rede interna) de todos os nós do cluster, e as portas nas quais eles comunicam-se entre si. O ID identifica cada nó do cluster, e também precisa ser referenciado em um arquivo de nome "myid", dentro do diretório definido na propriedade dataDir. Neste exemplo seria necessário criar o arquivo /var/lib/zookeeperdata/myid com o conteúdo "1" (sem aspas) para a máquina configurada na propriedade server.1, o mesmo arquivo com conteúdo "2" (sem aspas) para a máquina configurada na propriedade server.2, e assim por diante, para cada máquina existente no cluster. As portas 2888 e 3888 são as portas que serão utilizadas para comunicação entre cada uma das máquinas do cluster e podem ser alteradas de acordo com a necessidade, desde que informadas na linha correspondete ao servidor em questão, no arquivo zoo.cfg de todas as máquinas do cluster.

...