¿Todavía no conoces Elasticsearch? Únete a nuestro webinar de los Primeros pasos con Elasticsearch. También puedes iniciar una prueba gratuita en el cloud o prueba Elastic en tu máquina ahora mismo.
Elasticsearch está diseñado para ser un sistema distribuido que puede manejar una gran cantidad de datos y ofrecer una alta disponibilidad. Una de las características clave que permite esto es el concepto de replicación de índice, que está regulado por la configuración number_of_replicas . Este artículo profundizará en los detalles de este escenario, sus participaciones y cómo configurarlo correctamente.
El papel de las réplicas en Elasticsearch
En Elasticsearch, un índice es una colección de documentos que se dividen en múltiples fragmentos primarios. Cada fragmento primario es un índice Apache Lucene autosuficiente, y los documentos dentro de un índice se distribuyen entre todos los fragmentos primarios. Para garantizar una alta disponibilidad y redundancia de datos, Elasticsearch permite que cada fragmento tenga una o más copias, conocidas como réplicas.
La configuración number_of_replicas controla el número de fragmentos réplica (copias) que Elasticsearch crea para cada fragmento principal en un índice. Por defecto, Elasticsearch crea una réplica para cada shard primario, pero esto puede cambiar según los requisitos de tu sistema.
Configuración de la number_of_replicas
La configuración de number_of_replicas puede configurar en el momento de la creación del índice o actualizar más adelante. Así es como puedes configurarlo durante la creación del índice:
En este ejemplo, Elasticsearch creará dos réplicas para cada fragmento primario en el índice de my_index .
Para actualizar la configuración de number_of_replicas de un índice existente, puedes usar la API _settings :
Este comando actualizará el índice de my_index para tener tres réplicas por cada fragmento primario.
Participaciones del entorno number_of_replicas
La configuración number_of_replicas tiene un impacto significativo en el rendimiento y la resiliencia de tu clúster de Elasticsearch. Aquí tienes algunos puntos clave a tener en cuenta:
- Redundancia y disponibilidad de datos: Aumentar la
number_of_replicasmejora la disponibilidad de tus datos creando más copias de cada fragmento. Si un nodo falla, Elasticsearch aún puede servir datos de los fragmentos réplica en los nodos restantes. - Rendimiento en la búsqueda: Los fragmentos réplica pueden atender solicitudes de lectura, por lo que tener más réplicas puede mejorar el rendimiento de búsqueda al distribuir la carga entre más fragmentos.
- Requisitos de almacenamiento: Más réplicas significan más espacio de almacenamiento. Debes cerciorarte de que tu clúster tenga suficiente capacidad para almacenar las réplicas adicionales.
- Resiliencia ante el fallo de nodos: El
number_of_replicasdebería establecer teniendo en cuenta el número de nodos en tu clúster. Si elnumber_of_replicases igual o mayor que el número de nodos, tu clúster puede tolerar el fallo de varios nodos sin pérdida de datos.
Mejores prácticas para establecer number_of_replicas
La configuración óptima de number_of_replicas depende de los requisitos específicos de tu sistema. Sin embargo, aquí tienes algunas buenas prácticas generales:
- Para un clúster de un solo nodo,
number_of_replicasdebe estar en 0, ya que no hay otros nodos que almacenen réplicas. - Para un clúster multinodo,
number_of_replicasdebe estar configurado al menos en 1 para garantizar redundancia de datos y alta disponibilidad. - Si el rendimiento en las búsquedas es una prioridad, considera aumentar la
number_of_replicas. Sin embargo, ten en cuenta el equilibrio entre el rendimiento de escritura y los requisitos de almacenamiento. - Cerciórate siempre de que tu clúster tenga suficiente capacidad para almacenar las réplicas adicionales.




