Histórico da Página
Painel | ||
---|---|---|
| ||
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]. |
Informações | ||
---|---|---|
| ||
Esta página foi revisada para considerar as configurações do serviço de indexação a partir da Atualização Crystal Mist (1.8.2). Caso possua uma atualização 1.6.4 à 1.8.1 acesse: ARQ - Como configurar o Servidor de indexação para executar em cluster da release 1.6.4 à 1.8.1?. 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?. |
Índice
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
...
...
Antes de prosseguir com as instruções descritas nessa página, realize os passos contidos na documentação Fluig Indexer em servidor dedicado - 1.6.
Introdução
...
As instruções a seguir completarão a instalação de um fluig Indexer Servidor de indexação em um cluster de servidores dedicados, continuando as instruções iniciadas em Fluig Indexer em servidor dedicado.
Fluig Indexer Master
Um e somente um dos servidores precisa ser eleito como "Master". Nele executará o processo de coordenação dos nós do cluster de servidores (ZooKeeper).
Execute o script <fluigIndexer>/solr/startCloudMaster.sh ou <fluigIndexer>\solr\startCloudMaster.bat para iniciar o fluig Indexer. Para interromper, execute o arquivo <fluigIndexer>/solr/stopCloud.sh ou <fluigIndexer>\solr\stopCloud.bat.
Informações | ||
---|---|---|
| ||
É importante que o fluig Indexer seja iniciado antes do Fluig, caso contrário este irá considerar que não há Serviço de Indexação disponível. |
Fluig Indexer Slave
Um ou mais servidores podem ser utilizados como "Slave".
Edite o arquivo <fluigIndexer>/solr/startCloudSlave.sh ou <fluigIndexer>\solr\startCloudSlave.bat para configurar o IP e porta do processo de coordenação (ZooKeeper) do cluster de indexação que é executado no servidor Master (informado após o parâmetro -z).
Bloco de código | ||||
---|---|---|---|---|
| ||||
./bin/solr start -cloud -z localhost:9983 |
Bloco de código | ||||
---|---|---|---|---|
| ||||
call .\bin\solr.cmd start -cloud -z localhost:9983 |
Se desejar subir duas instâncias na mesma máquina ou por algum motivo qualquer desejar subir o fluig Indexer em outra porta, adicione o parâmetro "-p".
Obs.: Nesse caso é necessário adicionar o mesmo parâmetro nos scripts de stop (<fluigIndexer>/solr/stopCloud.sh ou <fluigIndexer>\solr\stopCloud.bat).
Bloco de código | ||||
---|---|---|---|---|
| ||||
./bin/solr start -cloud -z localhost:9983 -p 18983 |
Bloco de código | ||||
---|---|---|---|---|
| ||||
call .\bin\solr.cmd start -cloud -z localhost:9983 -p 18983 |
Obs: É importante que o fluig Indexer Master seja iniciado antes do fluig Index Slave, caso contrário este irá considerar que não há Serviço de Coordenação disponível.
Configurando o fluig para usar o Indexer
No servidor onde está instalado o fluig Server, acesse o diretório <fluig-server>/repository/wcmdir/config/, crie ou edite o arquivo configuration.properties e edite ou inclua estas linhas (para mais formas de configuração):
Bloco de código | ||
---|---|---|
| ||
totvs/solrURL=<IP Servidor Master>:9983
totvs/solrCloud=true
totvs/solrRemote=true |
Modifique para o <IP>:<Porta> onde está executando o fluig Indexer Master. Deverá ser informado apenas o IP ou HostName do servidor onde está instalado o serviço de indexação 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. A chave totvs/solrCloud vai configurar o fluig para ativar a opção do Solr Cloud.
Criando os "Core"
Cada empresa (tenante) criado no fluig, é mapeado para um "Core" no Indexer.
Quando em cluster, os "cores" não são criados automaticamente, é preciso criar manualmente ANTES de criar a empresa no fluig.
Inicie o Master e o(s) slave(s) e crie o core com o seguinte comando:
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.
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 outras 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.
Configurando o Apache® ZooKeeper
...
O primeiro passo é efetuar o download da versão 3.9.1 do Apache® ZooKeeper, que pode ser obtida no endereço https://archive.apache.org/dist/zookeeper/zookeeper-3.9.1/.
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:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
tickTime=2000
dataDir=C:/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
4lw.commands.whitelist=mntr,conf,ruok
#admin.serverPort=8080
server.1=<server1_address>:2888:3888
server.2=<server2_address>:2888:3888
server.3=<server3_address>:2888:3888 |
- tickTime: corresponde ao tempo em milissegundos 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 e com permissão de escrita pelo usuário que irá iniciar o ZooKeeper. O mapeamento deve ser feito sempre com o caracter '/', mesmo em ambientes Windows.
- clientPort: corresponde à porta que será utilizada pelo Apache® Solr.
- initLimit: quantidade de tempo (em ticks) para que uma máquina com ZooKeeper se conecte e sincronize com a máquina que foi eleita líder. Neste caso, são 5 ticks com 2000 milissegundos cada, totalizando 10 segundos. Este valor pode ser incrementado sob demanda se a quantidade de informações gerenciadas pelo ZooKeeper for elevada.
- syncLimit: quantidade de tempo (em ticks) que uma máquina com 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.
- 4lw.commands.whitelist: lista de comandos que o ZooKeeper tem permissão para executar.
- admin.serverPort: por padrão, o ZooKeeper roda um servidor Jetty na porta 8080. Fica a seu critério escolher a porta, desde que não esteja sendo utilizada por outra aplicação. Basta remover o caractere # da propriedade e alterar o valor da porta.
- server.X: são os IDs e localização (endereço na rede interna) de todos os nós do cluster e as portas nas quais eles se comunicam entre si. O ID identifica cada nó do cluster, precisando 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 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 correspondente ao servidor em questão, no arquivo 'zoo.cfg' de todas as máquinas do cluster.
Nota | ||
---|---|---|
| ||
Certifique-se de 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:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
cd <ZOOKEEPER_HOME>/bin
zkServer.sh start zoo.cfg |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
cd <ZOOKEEPER_HOME>/bin
zkServer.cmd |
Configurando o Apache® Solr
...
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, deve 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:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
ZK_HOST="<server1_address>:2181,<server2_address>:2181,<server3_address>:2181"
SOLR_HOST="<server>"
SOLR_IP_ALLOWLIST="<IP1>,<IP2>,<IP3>" |
Neste caso, os endereços <server1_address>, <server2_address> e <server3_address> no item ZK_HOST são os mesmos 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.
Os parâmetros IP utilizados no item SOLR_IP_ALLOWLIST restringem o acesso ao Solr, garantindo que qualquer chamada de um IP/hostname diferente dos que foram configurados será bloqueada. Esta propriedade é imprescindível para aumentar a segurança do ambiente. Para mais informações, consulte a documentação do Solr.
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.
Nota | ||
---|---|---|
| ||
O serviço de gerenciamento (ZooKeeper) deve ser 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. |
Configurações de indexação
...
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:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<SOLR_DIR>/bin/solr zk upconfig -d fluig -n fluig -z <server1_address>:2181,<server2_address>:2181,<server3_address>:2181 |
- O parâmetro '-d fluig' corresponde ao nome do diretório onde estão armazenadas as configurações utilizadas pela plataforma, instaladas por padrão juntamente com o serviço de indexação, no diretório 'fluig'. O comando irá efetuar o upload deste diretório para os endereços informados no parâmetro '-z'.
- O parâmetro '-n fluig' corresponde ao nome que esta configuração irá receber no serviço de gerenciamento (ZooKeeper) e será utilizado no próximo passo (criação da collection).
- O parâmetro '-z' informa a lista de serviços de gerenciamento (ZooKeeper) onde serão publicadas estas configurações, conforme detalhado anteriormente.
Nota | ||
---|---|---|
| ||
Como existe o ZooKeeper para gerenciar o cluster, este comando precisa ser executando apenas em uma das máquinas do Solr. |
Criação de collection
...
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 a esta collection, através do seguinte comando:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<SOLR_DIR> | ||||||
Bloco de código | ||||||
| ||||||
./bin/solr create_collection -c <ID do Tenante>Tenant> -d fluig -n fluig -shards 1 -replicationFactor 2 |
Bloco de código | ||||
---|---|---|---|---|
| ||||
.\bin\solr.cmd create_collection -c <ID do Tenante> -d fluig -n fluig -shards 1 -replicationFactor 2 |
Considerações:
- Informe o ID do tenante em <ID do Tenante>
- Se utilizar mais de um slave, informe o número de instancias (master + slaves) totais após o parâmetro -replicationFactor.
Registrando o fluig Indexer como Serviço no Windows
Para registrar fluig Indexer como serviço, utilize os procedimentos padrões do Sistema Operacional em questão.
- Informe o código numérico que será usado para a empresa criada no Fluig em <ID do Tenant>.
- Neste caso o parâmetro '-d' corresponde ao nome da configuração armazenada no ZooKeeper (parâmetro '-n' do comando utilizado anteriormente para upload).
- Informe o número total de instâncias do Apache® Solr após o parâmetro '-replicationFactor'.
Nota | ||
---|---|---|
| ||
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. |
Configurando o Fluig para usar o Servidor de indexação
...
Se o Fluig estiver em execução, siga os passos abaixo:
Deck of Cards | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||
|
Se o Fluig estiver parado, siga os passos abaixo:
Deck of Cards | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
|
HTML |
---|
<script>
$("b:contains('oculto')").parent().parent().hide();
</script> |
...