¿Qué es Eureka Server y por qué no deberías ignorarlo en tu arquitectura de microservicios?

| Última modificación: 8 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Las arquitecturas de servicio han ganado popularidad en las últimas décadas debido a su gran capacidad de descomponer aplicaciones monolíticas en servicios independientes. Uno de los principales desafíos en este aspecto es el cómo comunicar estos microservicios entre sí, de tal manera que sean eficientes. Aquí es donde introducimos Eureka Server, una herramienta que nos ayuda con esta tarea de gestionar la facilidad de encontrar servicios en una arquitectura distribuida. En caso de que trabajes con Spring Boot, esta herramienta te será de mucha utilidad para que todos tus microservicios puedan ser localizados y puedan comunicarse entre sí. El día de hoy te mostramos qué es y cómo manejar Eureka Server.

Eureka Server
Imagen: Github

¿Qué es Eureka Server?

Es una herramienta que sirve para el registro y descubrimiento de servicios. Fue inicialmente creada por Netflix y diseñada para arquitecturas de microservicios. Grosso modo, es un servidor en donde los microservicios pueden ser registrados para que puedan ser localizados por otros servicios. Eureka Server gestiona este proceso automáticamente, sin tener que definir de forma manual las direcciones de cada servicio. Esta herramienta forma parte del ecosistema Spring Cloud Netflix y ha sido integrado de manera directa con Spring Boot, es decir, que cuando un microservicio se levanta, se registra en el Eureka server, que a su vez guarda información de ubicación, como son la dirección IP y puerto, para que otros servicios puedan encontrarlo y comunicarse con él.

¿Cuál es su función dentro de los microservicios?

La principal ventaja de Eureka Server es que elimina la necesidad de que los microservicios conozcan de antemano las ubicaciones de otros servicios con los que necesitan interactuar. En lugar de esto, se registran en el Eureka y otros servicios los consultan allí cuando los necesitan. De esta manera Eureka resuelve uno de los principales problemas de las arquitecturas de microservicios: la localización dinámica de servicios.

Veamos un poco más a fondo sus ventajas:

  1. Registro dinámico: Cada microservicio se registra automáticamente en el servidor.
  2. Balanceo de carga: Al trabajar en conjunto con otros componentes como Ribbon, permite distribuir las solicitudes entre las distintas instancias de un microservicio.
  3. Tolerancia a fallos: Si un servicio falla o deja de enviar “heartbeats” (señales de vida) al servidor, Eureka Server lo elimina del registro automáticamente, esto nos ayuda a evitar fallos en cadena.
  4. Escalabilidad: Facilita la escalabilidad horizontal, lo que a su vez permite que nuevos servicios se añadan o retiren sin problemas.

¿Cómo configurar Eureka Server en tu proyecto?

Para configurar Eureka Server debes seguir los pasos a continuación:

  • Crear un proyecto Spring Boot: Primero, necesitarás un proyecto Spring Boot con las dependencias de Eureka Server. En el archivo pom.xml, añade lo siguiente:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
  • Configuración en application.properties: Luego, debes configurar los parámetros necesarios en el archivo application.properties para que tu aplicación actúe como un servidor de Eureka:
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

Estas configuraciones permiten que Eureka Server funcione sin registrarse a sí mismo, ya que su función principal es ser un centro de registro para otros microservicios.

  • Activar Eureka Server: Finalmente, debes activar Eureka Server en tu aplicación. Para esto, simplemente añade la anotación @EnableEurekaServer en la clase principal de tu aplicación Spring Boot:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}

¿Cómo funciona el registro de microservicios?

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Una vez que tienes configurado Eureka Server, los microservicios se registran en él de manera automática cuando arrancan. Para lograr esto, debes añadir el starter de Eureka Client en el archivo pom.xml de cada microservicio:

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>

Luego, en el archivo application.properties del microservicio, configura la siguiente información:

server.port=8081
spring.application.name=micro1
eureka.client.service-url.defaultZone=http://localhost:8761/eureka

Esta configuración le indica al microservicio que debe registrarse en el Eureka Server que está corriendo en el puerto 8761.

¿Tu meta es convertirte en un gran programador y desarrollador devops? ¡Llegaste al lugar indicado! En el bootcamp en devops y cloud computing que tenemos para ti te brindaremos la mejor formación para que transformes tu carrera con las oportunidades que ofrece el sector tecnológico. ¡Apúntate y da el primer paso hacia un futuro lleno de posibilidades!

Xoán Mallón

Senior DevOps Engineer en Zscaler & Coordinador del Bootcamp DevOps & Cloud Computing.

Posts más leídos

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado