Esta página é válida da atualização 1.6.4 à 1.8.1 do TOTVS Fluig Plataforma. Caso possua uma atualização 1.6.0 à 1.6.3 acesse: ARQ - Como configurar o Servidor de indexação para executar em cluster da release 1.6.0 a 1.6.3?. Caso possua a Atualização Crystal Mist (1.8.2), acesse: Servidor de indexação em alta disponibilidade. |
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?. [essa página está arquivada, mas caso seja necessário, solicitar para alguém de Gestão do Conhecimento]. |
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 Servidor de indexação 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.
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 será realizado pelo Apache® ZooKeeper.
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 gerenciamento das configurações de indexação e das requisições. Também é necessário que todas as máquinas do cluster sejam acessíveis entre si (estejam na mesma rede).
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%, atendendo ao critério de maioria. Por esse motivo é recomendado um número ímpar de servidores executando o Apache® ZooKeeper.
O primeiro passo é efetuar o download da versão 3.4.10 do Apache® ZooKeeper, que pode ser obtida no endereço 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=C:/zookeeper/data clientPort=2181 initLimit=5 syncLimit=2 server.1=<server1_address>:2888:3888 server.2=<server2_address>:2888:3888 server.3=<server3_address>:2888:3888 |
Certifique-se que o arquivo "myid" foi criado corretamente em cada máquina (na pasta definida pela propriedade dataDir), tendo o ID numérico do servidor como conteúdo. |
Com essa configuração em cada máquina do cluster, basta iniciá-las com o seguinte comando:
cd <ZOOKEEPER_HOME>/bin zkServer.sh start zoo.cfg |
cd <ZOOKEEPER_HOME>/bin zkServer.cmd |
A instalação do Apache® Solr pode ser realizada através da instalador do fluig no modo caractere, seguindo o passo a passo para instalar somente o servidor de indexação em Windows ou Linux.
Para existir redundância, devem conter no mínimo duas máquinas executando este serviço de indexação, podendo estas serem as mesmas máquinas que executam o serviço de gerenciamento (ZooKeeper) ou máquinas distintas na mesma rede, dependendo da arquitetura desejada de tolerância à falhas.
O Solr possui dois modos de inicialização: Standalone e Cloud. Em um ambiente de alta disponibilidade, é necessário utilizar o modo Cloud, apontando para os servidores onde estão sendo executados os serviços de gerenciamento das configurações e requisições (ZooKeeper). Para isso, basta incluir o parâmetro ZK_HOST no arquivo de configuração do servidor de indexação, conforme exemplo abaixo:
ZK_HOST="<server1_address>:2181,<server2_address>:2181,<server3_address>:2181" SOLR_HOST="<server>" |
Neste caso, os endereços <server1_address>, <server2_address> e <server3_address> no item ZK_HOST, são os mesmo informados anteriormente nos parâmetros 'server.X' do arquivo 'zoo.cfg', e a porta 2181 corresponde ao parâmetro clientPort informado nesse mesmo arquivo. As aspas devem ser mantidas.
O parâmetro <server> utilizado no item SOLR_HOST se refere ao endereço ou ip do próprio servidor que está configurando. As aspas devem ser mantidas.
A localização deste arquivo de configuração varia de acordo com o sistema operacional, e pode ser verificada na tabela abaixo:
Sistema Operacional | Arquivo de Configuração | Localização |
---|---|---|
Linux | fluig_Indexer.in.sh | /etc/default/ |
Windows | solr.in.cmd | [Instalação fluig Indexer]/solr/bin/ |
Após esta configuração, é necessário iniciar os serviços do Solr (fluig_Indexer) em todas as máquinas que o executarão para seguir com os próximos passos. |
É importante que o serviço de gerenciamento (ZooKeeper) seja iniciado antes do serviço de indexação (Solr), caso contrário, este último irá considerar que não há serviço de gerenciamento disponível. |
Quando o Apache® Solr é executado no modo Cloud, as configurações do índice são armazenadas e gerenciadas pelo Apache® ZooKeeper. Por isso, primeiramente é necessário publicar as configurações utilizadas pela plataforma. Estas configurações são instaladas juntamente com o serviço de indexação e para publicá-las no serviço de gerenciamento (ZooKeeper), pode-se utilizar o comando abaixo:
<SOLR_DIR>/bin/solr zk upconfig -d fluig -n fluig -z <server1_address>:2181,<server2_address>:2181,<server3_address>:2181 |
Como existe o ZooKeeper para gerenciar o cluster, este comando precisa ser executando apenas em uma das máquinas do Solr. |
Cada empresa (tenant) criada no fluig é mapeada para uma collection no Apache® Solr. Quando em cluster, é necessário definir a quantidade de nós (shards) em que o índice será dividido e o fator de replicação (replicationFactor) das informações referentes à esta collection, através do seguinte comando:
<SOLR_DIR>/bin/solr create_collection -c <ID do Tenant> -d fluig -shards 1 -replicationFactor 2 |
Como existe o ZooKeeper para gerenciar o cluster, este comando precisa ser executando apenas em uma das máquinas do Solr, mas as outras máquinas precisam estar com o Solr em execução. |
Se o fluig tiver em execução, siga os passos abaixo:
|
|
<script> $("b:contains('oculto')").parent().parent().hide(); </script> |