Esta página foi revisada para considerar as novas configurações do serviço de indexação no fluig para a atualização Water Drop (1.6.4).

Caso possua uma atualização 1.6.0 à 1.6.3 acesse:

Para atualizações 1.5.6 à 1.5.13 acesse: Como configurar o fluig Indexer para executar em cluster da release 1.5.6 à 1.5.13?.

Para atualizações 1.5.6 ou inferior acesse: Como configurar o fluig Indexer para executar em cluster na release 1.5.6 ou inferior?

Índice


Introdução

As instruções a seguir completarão a instalação de um fluig Indexer em um cluster de servidores dedicados, continuando as instruções iniciadas na página Fluig Indexer em Servidor Dedicado.

Na maioria dos cenários, uma máquina bem dimensionada executando o serviço de indexação é suficiente para atender as demandas de indexação e busca da plataforma.

Sendo assim, as configurações apresentadas nesta página são consideradas avançadas, com maior necessidade de administração do ambiente, e recomendadas apenas em casos específicos, quando a busca é uma funcionalidade crítica, ou quando se faz necessário garantir a alta disponibilidade deste serviço.


Redundância

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® ZooKeeper.

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 gerenciamenteo das configurações e das requisições.

O princípio de funcionamento do Apache® 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® ZooKeeper.


Configurando o Apache® ZooKeeper

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

Após efetuar o download e extrair o arquivo compactado no diretório de sua preferência (<ZOOKEEPER_HOME>) em cada uma das máquinas do cluster, é necessário criar, caso ainda não exista, o arquivo <ZOOKEEPER_HOME>/conf/zoo.cfg com o seguinte conteúdo:

tickTime=2000
dataDir=/var/lib/zookeeperdata
clientPort=2181
initLimit=5
syncLimit=2
server.1=<server1_ip>:2888:3888
server.2=<server2_ip>:2888:3888
server.3=<server3_ip>:2888:3888

Com essa configuração em cada máquina do cluster, basta iniciá-las com o seguinte comando: 

	cd <ZOOKEEPER_HOME>/bin
Linux:
	zkServer.sh start zoo.cfg

Windows:
	zkServer.cmd start zoo.cfg


Configurando o Apache® Solr

A instalação do Apache® Solr pode ser realizada através da mídia de instalação do fluig no modo caractere, seguindo o passo a passo para instalar somente o servidor de indexação em Windows ou Linux.


Um ou mais servidores podem ser utilizados como Slave.

./bin/solr start -cloud -z localhost:9983
call .\bin\solr.cmd start -cloud -z localhost:9983



./bin/solr start -cloud -z localhost:9983 -p 18983
call .\bin\solr.cmd start -cloud -z localhost:9983 -p 18983

É importante que o fluig Indexer Master seja iniciado antes do fluig Index Slave, caso contrário este último irá considerar que não há Serviço de Coordenação disponível.


Criação de Core

Cada empresa (tenant) criada no fluig é mapeada para um Core no Indexer. Quando em cluster, os Cores não são criados automaticamente, por isso é preciso criá-los manualmente antes de criar a empresa no fluig.

./bin/solr create_collection -c <ID do Tenant> -d fluig -shards 1 -replicationFactor 2
.\bin\solr.cmd create_collection -c <ID do Tenant> -d fluig -shards 1 -replicationFactor 2

Considerações:


Configurando o fluig para usar o Indexer

Se o fluig tiver em execução, siga os passos abaixo:


  • Acesse o fluig com o usuário 'wcmadmin':


  • Clique no menu Painel de Controle → Aba WCM → Configurações do Sistema:


  • Clique na Aba Parâmetros da Plataforma e localize as configurações do Servidor de Indexação:


  • Configure da seguinte forma:
    • Diretório do Solr: Incluir o caminho para a pasta do Solr.
    • URL de acesso ao Solr:  Deve ser informando o endereço do servidor onde está sendo executado o fluig Indexer Master. Deverá ser incluido da seguinte forma: http://[Host Servidor Master]:[Porta].  A porta utilizada será a do serviço de coordenação do cluster que por padrão é a porta do 9983.
    • Solr em Servidor Remoto: Deve estar ativado (ON).
    • Solr em Cluster: Deve estar ativado (ON). Esta opção ativa o Solr em Cluster, necessária para ambientes em cluster.


  • As alterações nos parâmetros exigem a reinicialização da plataforma. Portanto inicie os serviços na ordem correta.


Se o fluig estiver parado, siga os passos abaixo:

No servidor onde está instalado o fluig, acesse o diretório [Instalação fluig]/repository/wcmdir/config e edite o arquivo configuration.properties. Caso o arquivo configuration.properties não exista, crie um novo arquivo com este nome.

totvs/solrURL=<IP Servidor Master>:9983
totvs/solrCloud=true
totvs/solrRemote=true

Modifique o parâmetro totvs/solrURL informando o endereço do servidor onde está sendo executado o fluig Indexer Master. Deverá ser informado apenas o IP ou hostname do servidor e a porta, sem o protocolo e contexto. A porta utilizada será a do serviço de coordenação do cluster que por padrão é a porta do 9983.

O parâmetro totvs/solrCloud irá condicionar o fluig para ativar a opção do Solr em Cluster, necessária para ambientes em cluster.