Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Características de la arquitectura de Elasticsearch

Pedro Santos González
  • Escrito por Pedro Santos González el 19 de Febrero de 2019
  • 1 min de lectura | Desarrollo Web
Características de la arquitectura de Elasticsearch
El reproductor de video será cargado en breves instantes.

Principales características de Elasticsearch

  • Su escalabilidad horizontal, que es su principal característica y en la que se centró el diseño de su arquitectura.
  • Tiene respuestas próximas al tiempo real, ya que la latencia es menor de un segundo desde que se indexa hasta que el dato está disponible para la búsqueda.
  • Es tolerante a fallos en los nodos, lo que ofrece alta disponibilidad al tener replicación de los datos en nodos diferentes.
  • Dispone de funciones de búsqueda en texto completo, ya que se considera todo el contenido de los documentos para la búsqueda, a diferencia de lo que ocurre en una base de datos convencional, en la que solo se consideran campos concretos como el título o las referencias.
  • Está orientado a documentos JSON.
  • No requiere esquemas, por lo que tiene un indexado rápido se autodetectan los tipos de cada campo al generarlos.
  • Tiene un desarrollo amigable con unas Apis sencillas.

Escalabilidad de Elasticsearch

Elasticsearch tiene una escalabilidad horizontal en lugar de una escalabilidad vertical.

La diferencia entre ambas es que la escalabilidad vertical implica tener un mejor hardware, es decir, cuando necesitamos tener un sistema más potente lo que hacemos es comprar más disco duro, memoria o procesador. Esto es limitado, ya que la cantidad de mejoras que podemos hacer un mismo equipo siempre es limitada, y llegará un momento en el que no se pueda ampliar más.

En la escalabilidad horizontal se tienen varios nodos trabajando como único servidor, con lo cual se puede ampliar indefinidamente.

Cómo funciona el almacenamiento en Elasticsearch

El almacenamiento en Elasticsearch destacar varios aspectos:

  • Almacena documentos en índices, que son la unidad principal. Antes de Elasticsearch 6 se solía utilizar la analogía entre un índice y una base de datos, y una tabla y un documento, y era posible para un índice de Elasticsearch tener varios tipos. Sin embargo se comprobó que este sistema generaba problemas en la capacidad de comprensión de Lucen, que está en la capa de software por debajo de Elasticsearch, y se decidió que sólo fuera posible tener un solo tipo de datos por índice.
  • Los índices se dividen en shards o fragmentos.
  • Cada fragmento puede ubicarse en un nodo diferente del clúster.
  • Tiene tolerancia a fallos, lo que se consigue mediante shards primarios y réplicas de los mismos en otros nodos.
  • Las escrituras se realizan sobre shards primarios, los cuales luego son replicado, con lo cual este sistema de réplicas hace que el tiempo de escritura sea un poco mayor para poder realizar las réplicas.
  • Las lecturas se pueden realizar tanto sobre shards primarios como sobre las réplicas, con lo cual mejora la capacidad de lectura.

Ejemplo del funcionamiento de Elasticsearch

Vamos a ver un ejemplo grafico de cómo funciona el almacenamiento en Elasticsearch:

Imagen 0 en Características de la arquitectura de Elasticsearch

En la parte superior de la imagen podemos ver que tenemos un índice dividido en dos shards, denominados P0 y P1, con tres nodos y dos réplicas por cada shard.

Tenemos el nodo 1, el nodo 2 y el nodo 3, y dentro de ellos marcadas en verde los shards primarios y en gris las réplicas.

Si falla uno de los nodos, las réplicas pasan a ser primarias, y al tener dos shards menos se volverían a generar nuevas réplicas.

En este caso nos quedaría como vemos en la parte inferior de la imagen, en la que habría fallado el nodo 1 maestro, pero no ha ocurrido nada porque el rol de maestro lo ha pasado ocupar el nodo 2, y el sistema sigue funcionando como antes.

Otras características de los shards y las réplicas

  • El número de shards se puede definir al crear el índice y es fijo una vez que se ha creado ese índice.
  • El número de réplicas se puede cambiar dinámicamente.
  • Por defecto, un índice tiene cinco shards y una réplica, la cual solo tiene efectos si tenemos dos nodos, ya que si solo tenemos uno, no habría ningún sitio donde se pueda replicar.
Este curso de Elasticsearch te permitirá conocer a fondo la arquitectura de Elasticsearch para aprender a comunicar Java con este potente servidor de búsquedas basado en Lucene.
 
cursos-elasticsearch-busqueda

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Curso de Java desde Cero (Versión de 2016)

Curso de Java desde Cero (Versión de 2016)

curso

En este curso aprenderás los fundamentos de la programación con Java: el lenguaje más usado por las grandes empresas. Java te permitirá crear desde aplicaciones web, aplicaciones móviles y aplicaciones de escritorio, entre otras muchas utilidades.

Duración: 7 horas y 22 minutos

Frontend Developer Profesional

Frontend Developer Profesional

carrera

Incluye 8 cursos:

  • Curso de HTML5, CSS3 y JavaScript
  • Curso de React JS
  • Curso de Angular 6

y 5 cursos más!

Duración: 52 horas y 11 minutos

¿QUÉ ES ELK? ElasticSearch, Logstash y Kibana

¿QUÉ ES ELK? ElasticSearch, Logstash y Kibana

Big Data

30 de Julio de 2018

¿Qué es ELK? Con elastic stack podremos tener un servidor web que ofrece información útil en tiempo real de casi cualquier tipo de fuente de datos estructurada y no estructurada

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars