English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O Elasticsearch é composto por muitos módulos, que são responsáveis por suas funcionalidades. Esses módulos têm dois tipos de configurações, conforme mostrado a seguir:
Configurações estáticas−Antes de iniciar o Elasticsearch, é necessário configurar essas configurações no arquivo config(elasticsearch.yml). Você precisa atualizar todos os nós de interesse na cluster para refletir as mudanças nessas configurações.
Configurações dinâmicas −Essas configurações podem ser configuradas em um Elasticsearch em tempo real.
Discutiremos os diferentes módulos do Elasticsearch em seções subsequentes deste capítulo.
As configurações de nível de cluster determinam a alocação de fragmentos para diferentes nós e a realocação de fragmentos para rebalancear o cluster. Aqui estão as configurações que controlam a alocação de fragmentos.
Configuração | Valores possíveis | Descrição |
---|---|---|
cluster.routing.allocation.enable | ||
all | Este valor padrão permite a alocação de fragmentos para todos os tipos de fragmentos. | |
primaries | Isso permite apenas a alocação de fragmentos para o fragmento primário. | |
new_primaries | Isso permite apenas a alocação de fragmentos para o fragmento primário de novos índices. | |
none | Isso não permite qualquer alocação de fragmentos. | |
cluster.routing.allocation.node_concurrent_recoveries | Número (valor padrão)2) | Isso limita o número de recuperações de fragmentos concorrentes. |
cluster.routing.allocation.node_initial_primaries_recoveries | numeric value (default is4) | Isso limita o número de recuperações iniciais de primários paralelas. |
cluster.routing.allocation.same_shard.host | Valor booleano (padrão é false) | Isso limita o número de cópias do mesmo fragmento alocadas no mesmo nó físico. |
index.recovery.concurrent_streams | numeric value (default is3) | Isso controla o número de fluxos de rede abertos por nó durante a recuperação de fragmentos de pares. |
index.recovery.concurrent_small_file_streams | numeric value (default is2) | Isso pode controlar a recuperação de fragmentos quando o tamanho é menor que5O número de fluxos de rede abertos em cada nó para o pequeno arquivo do mb. |
cluster.routing.rebalance.enable | ||
all | This default value allows balancing all types of shards. | |
primaries | This only allows shard balancing for primary shards. | |
replicas | This only allows shard balancing for replica shards. | |
none | This does not allow any form of shard balancing. | |
cluster.routing.allocation .allow_rebalance | ||
always | This default value always allows rebalancing. | |
indexs_primaries_active | This allows rebalancing when allocating all primary shards in the cluster. | |
Indices_all_active | This allows rebalancing during the allocation of all primary and replica shards. | |
cluster.routing.allocation.cluster _concurrent_rebalance | numeric value (default is2) | This limits the number of concurrent shard balances in the cluster. |
cluster.routing.allocation .balance.shard | floating-point value (default is 0.45f) | This defines the weight factor for the shards allocated to each node. |
cluster.routing.allocation .balance.index | floating-point value (default is 0.55f) | This defines the ratio of the number of shards allocated to each index on a specific node. |
cluster.routing.allocation .balance.threshold | non-negative floating-point value (default is1.0f) | This is the minimum optimization value for the operation that should be performed. |
Configuração | Valores possíveis | Descrição |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | Valor booleano (padrão é true) | This will enable and disable the disk allocation decision program. |
cluster.routing.allocation.disk.watermark.low | Valor de string (padrão de85) | This indicates the maximum usage rate of the disk; after this point, it will not be possible to allocate other shards to this disk. |
cluster.routing.allocation.disk.watermark.high | string value (default is90%) | This indicates the maximum usage during allocation; if this point is reached during allocation, Elasticsearch will allocate that shard to another disk. |
cluster.info.update.interval | string value (default30s) | Este é o intervalo entre duas verificações de uso de disco. |
cluster.routing.allocation.disk.include_relocations | Valor booleano (padrão é true) | Isto determina se deve considerar os fragmentos alocados atualmente ao calcular a taxa de uso do disco. |
Este módulo ajuda a descobrir e manter o estado de todos os nós no cluster. Quando nós são adicionados ou removidos do cluster, o estado do cluster muda. A configuração do nome do cluster é usada para criar diferenças lógicas entre diferentes clusters. Existem alguns módulos que ajudam você a usar os APIs fornecidas pelos provedores de nuvem, conforme mostrado a seguir-
Descoberta do Azure
EC2Descoberta
Descoberta do Google Compute Engine
Descoberta Zen
Este módulo mantém o estado do cluster e os dados dos fragmentos durante o reinício completo do cluster. A seguir estão as configurações estáticas deste módulo-
Configuração | Valores possíveis | Descrição |
---|---|---|
gateway.expected_nodes | Valor numérico (padrão de 0) | Número de nós no cluster usados para a recuperação de fragmentos locais. |
gateway.expected_master_nodes | Valor numérico (padrão de 0) | Número esperado de nós mestres no cluster antes do início da recuperação. |
gateway.expected_data_nodes | Valor numérico (padrão de 0) | Número esperado de nós de dados no cluster antes do início da recuperação. |
gateway.recover_after_time | Valor de string (padrão de5m) | Este é o intervalo entre duas verificações de uso de disco. |
cluster.routing.allocation. disk.include_relocations | Valor booleano (padrão é true) | Isto especifica o tempo de espera para o início do processo de recuperação, independentemente do número de nós que se juntaram ao cluster. gateway.recover_after_nodes |
Este módulo gerencia a comunicação entre o cliente HTTP e a API do Elasticsearch. Este módulo pode ser desativado alterando o valor http.enabled para false.
A seguir estão as configurações usadas para controlar este módulo (configuradas no elasticsearch.yml)-
Número sequencial | Configurações e descrições |
---|---|
1 | http.port Esta é a porta para acessar o Elasticsearch, variando de9200-9300。 |
2 | http.publish_port Esta porta é usada pelo cliente HTTP, também muito útil no caso de firewalls. |
3 | http.bind_host Este é o endereço do host do serviço HTTP. |
4 | http.publish_host Este é o endereço do host do cliente HTTP. |
5 | http.max_content_length Esta é o tamanho máximo permitido para o conteúdo da solicitação HTTP. Seu valor padrão é100mb。 |
6 | http.max_initial_line_length Este é o tamanho máximo da URL, com valor padrão4kb. |
7 | http.max_header_size Este é o tamanho máximo do cabeçalho http, com valor padrão8kb. |
8 | http.compression Isso habilita ou desabilita o suporte à compressão, com valor padrão false. |
9 | http.pipelinig Isso habilita ou desabilita o pipeline HTTP. |
10 | http.pipelining.max_events Isso limita o número de eventos a serem enfileirados antes de fechar a solicitação HTTP. |
Este módulo mantém as configurações globais definidas para cada índice. As configurações a seguir estão principalmente relacionadas ao uso de memória-
Isso é usado para evitar que operações causem OutOfMemoryError. Esta configuração limita principalmente o tamanho do heap do JVM. Por exemplo, a configuração indexs.breaker.total.limit, o valor padrão é o tamanho do heap do JVM70%.
Principalmente usado ao agrupar campos. Recomenda-se ter memória suficiente para alocá-lo. Pode-se usar a configuração index.fielddata.cache.size para controlar a quantidade de memória usada para o cache de dados de campo.
Esta memória é usada para armazenar resultados de consultas. O cache usa a estratégia de substituição mais recente (LRU). A configuração Indices.queries.cache.size controla o tamanho da memória deste cache.
Este buffer armazena novos documentos no índice e atualiza-os quando o buffer estiver cheio. Configurações como indexs.memory.index_buffer_size controlam o número de pilhas alocadas para este buffer.
Este cache é usado para armazenar dados de busca locais de cada fragmento. Pode ser habilitado durante a criação do índice ou desabilitado através de parâmetros de URL.
Desabilitar cache - ?request_cache = true Habilitar cache "index.requests.cache.enable": true
Controla os recursos durante o processo de recuperação. A seguir estão as configurações-
Configuração | Valor Padrão |
---|---|
indices.recovery.concurrent_streams | 3 |
indices.recovery.concurrent_small_file_streams | 2 |
indices.recovery.file_chunk_size | 512kb |
indices.recovery.translog_ops | 1000 |
indices.recovery.translog_size | 512kb |
indices.recovery.compress | true |
indices.recovery.max_bytes_per_sec | 40mb |
O intervalo de tempo de vida (TTL) define o tempo do documento, após o qual o documento será excluído. A seguir estão as configurações dinâmicas usadas para controlar este processo-
Configuração | Valor Padrão |
---|---|
indices.ttl.interval | 60s |
indices.ttl.bulk_size | 1000 |
Cada nó pode optar por ser um nó de dados. Esta propriedade pode ser alterada ajustando o ajuste node.data. Definir este valor como false define o nó como não sendo um nó de dados.