...
Bloco de código |
---|
|
tickTime=2000
dataDir=/var/lib/zookeeperdata
clientPort=2181
initLimit=5
syncLimit=2
server.1=<server1_ip>address>:2888:3888
server.2=<server2_ip>address>:2888:3888
server.3=<server3_ip>address>:2888:3888 |
- 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 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 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.
- 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.
...
Bloco de código |
---|
language | bash |
---|
title | Inicialização Solr modo cloud |
---|
|
<SOLR_DIR>/bin/solr start -cloud -z <server1_ip>address>:2181,<server2_ip>address>:2181,<server3_ip>address>:2181 |
Neste caso, os endereços <server1_ip>, <server2_ip> e <server3_ip> 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.
...
Bloco de código |
---|
language | bash |
---|
title | Inicialização Solr modo cloud |
---|
|
<SOLR_DIR>/bin/solr start -cloud -z <server1_ip>address>:2181,<server2_ip>address>:2181,<server3_ip>address>:2181 -p 18983 |
- Para interromper o serviço pode-se utilizar o comando abaixo:
Bloco de código |
---|
language | bash |
---|
title | Interromper Solr |
---|
|
<SOLR_DIR>/bin/solr stop -all |
- Para facilitar, podem ser criados arquivos de script de acordo com seu sistema operacional (.bat ou .sh) para reutilização destes comandos.
Nota |
---|
|
É 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. |
Configurações de indexação
Quando o Apache® Solr é executado em 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 |
---|
language | bash |
---|
title | Publicando configurações de indexação da plataforma |
---|
|
<SOLR_DIR>/bin/solr zk upconfig -d fluig -n fluig -z <server1_ip>address>:2181,<server2_ip>address>:2181,<server3_ip>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 cofigurações, da mesma forma já detalhada anteriormente.
Criação de collection
Cada empresa (tenant) criada no fluig é mapeada para uma collection no Apache® Solr. Quando em cluster, é necessário definir a quntidade 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:
Bloco de código |
---|
language | bash |
---|
title | Criando collection |
---|
|
<SOLR_DIR>/bin/solr create_collection -c <ID do Tenant> -d fluig -shards 1 -replicationFactor 2 |
- 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 correspondo 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.
...