Número de réplicas do índice Elasticsearch

Explicando como configurar o parâmetro `number_of_replicas`, suas implicações e boas práticas.

Novo no Elasticsearch? Participe do nosso webinar Introdução ao Elasticsearch. Você também pode iniciar um teste gratuito na nuvem do Elastic ou experimentar o Elastic em sua máquina agora.

O Elasticsearch foi projetado para ser um sistema distribuído capaz de lidar com grandes volumes de dados e fornecer alta disponibilidade. Uma das principais funcionalidades que permitem isso é o conceito de replicação de índice, que é controlado pela configuração number_of_replicas . Este artigo irá abordar em detalhes essa configuração, suas implicações e como configurá-la corretamente.

O papel das réplicas no Elasticsearch

No Elasticsearch, um índice é uma coleção de documentos que são particionados em vários shards primários. Cada fragmento primário é um índice Apache Lucene independente, e os documentos dentro de um índice são distribuídos entre todos os fragmentos primários. Para garantir alta disponibilidade e redundância de dados, o Elasticsearch permite que cada shard tenha uma ou mais cópias, conhecidas como réplicas.

A configuração number_of_replicas controla o número de shards de réplica (cópias) que o Elasticsearch cria para cada shard primário em um índice. Por padrão, o Elasticsearch cria uma réplica para cada shard primário, mas isso pode ser alterado de acordo com os requisitos do seu sistema.

Configurando o número de réplicas

A configuração number_of_replicas pode ser definida no momento da criação do índice ou atualizada posteriormente. Veja como você pode configurar isso durante a criação do índice:

Neste exemplo, o Elasticsearch criará duas réplicas para cada shard primário no índice my_index .

Para atualizar a configuração number_of_replicas de um índice existente, você pode usar a API _settings :

Este comando atualizará o índice my_index para ter três réplicas para cada fragmento primário.

Implicações da configuração number_of_replicas

A configuração number_of_replicas tem um impacto significativo no desempenho e na resiliência do seu cluster Elasticsearch. Aqui estão alguns pontos importantes a serem considerados:

  1. Redundância e disponibilidade de dados: Aumentar o number_of_replicas melhora a disponibilidade dos seus dados, criando mais cópias de cada fragmento. Se um nó falhar, o Elasticsearch ainda poderá fornecer dados a partir dos fragmentos de réplica nos nós restantes.
  2. Desempenho de busca: Fragmentos de réplica podem atender solicitações de leitura, portanto, ter mais réplicas pode melhorar o desempenho de busca, distribuindo a carga por mais fragmentos.
  3. Desempenho de gravação: No entanto, cada operação de gravação deve ser realizada em todas as cópias de um fragmento. Portanto, um number_of_replicas mais alto pode diminuir o desempenho da indexação , pois aumenta o número de operações que devem ser realizadas para cada gravação.
  4. Requisitos de armazenamento: Mais réplicas significam mais espaço de armazenamento. Você deve garantir que seu cluster tenha capacidade suficiente para armazenar as réplicas adicionais.
  5. Resiliência à falha do nó: O number_of_replicas deve ser definido considerando o número de nós em seu cluster. Se o number_of_replicas for igual ou maior que o número de nós, seu cluster pode tolerar a falha de vários nós sem perda de dados.

Melhores práticas para definir o número de réplicas

A configuração ideal number_of_replicas depende dos requisitos específicos do seu sistema. No entanto, aqui estão algumas boas práticas gerais:

  • Para um cluster de nó único, number_of_replicas deve ser definido como 0, pois não há outros nós para armazenar réplicas.
  • Para um cluster com vários nós, number_of_replicas deve ser definido como pelo menos 1 para garantir redundância de dados e alta disponibilidade.
  • Se o desempenho da pesquisa for uma prioridade, considere aumentar o number_of_replicas. No entanto, tenha em mente a relação de compromisso entre o desempenho de gravação e os requisitos de armazenamento.
  • Certifique-se sempre de que seu cluster tenha capacidade suficiente para armazenar as réplicas adicionais.

Conteúdo relacionado

Pronto para criar buscas de última geração?

Uma pesquisa suficientemente avançada não se consegue apenas com o esforço de uma só pessoa. O Elasticsearch é impulsionado por cientistas de dados, especialistas em operações de aprendizado de máquina, engenheiros e muitos outros que são tão apaixonados por buscas quanto você. Vamos nos conectar e trabalhar juntos para construir a experiência de busca mágica que lhe trará os resultados desejados.

Experimente você mesmo(a)