Cómo configurar Eureka Server en Spring Cloud

En una arquitectura basada en microservicios, el descubrimiento automático de servicios es una de las claves del éxito. Y para ello, Eureka Server, proporcionado por Spring Cloud, es una de las herramientas más potentes, simples y eficaces. Este post vamos a tratar de enseñarte paso a paso cómo configurar tu propio Eureka Server desde cero, con ejemplos claros y directos, y cómo comprobar su funcionamiento a través del panel web.

 

 

¿Qué es Eureka Server?

 

Eureka es un servicio de registro que permite a los microservicios registrarse dinámicamente y descubrir a otros servicios sin necesidad de codificar sus direcciones IP o puertos manualmente. Es decir, Eureka actúa como una guía telefónica en tiempo real, sabiendo cuáles son los microservicios que están activos y cómo alcanzarlos. Está integrado por tres componentes:

  • Eureka Server
  • Eureka Client
  • Load Balancer

 

El componente Eureka Server es el núcleo de esta infraestructura. Es el punto central donde todos los servicios se registran y desde donde los clientes consultan qué instancias están disponibles.

 

 

Paso a paso: configuración de un Eureka Server

 

Vamos a construir un servidor Eureka Standalone, es decir, un Eureka compuesto de una única instancia (útil para entornos de desarrollo). En el caso de que se dispusiera de varias instancias, estaríamos hablando de un Eureka Cluster. A continuación, vamos a ir completando el proyecto paso a paso.

 

 

Paso 1: Crear un nuevo proyecto Spring Boot

 

En primer lugar, tenemos que crear un proyecto Spring Boot, que va a ser el que actúe como Eureka Server para el resto de microservicios de nuestra aplicación. Puedes usar Spring Initializr para crear un proyecto con las siguientes dependencias:

  • Spring Boot DevTools (opcional)

  • Spring Web

  • Eureka Server

Selecciona la siguiente configuración:

  • Type: Maven
  • Packaging: Jar
  • Java Version: 21
  • Language: Java

 

👉 Una vez creado el proyecto, tu "pom.xml" debería tener algo como esto:


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

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>Hoxton.SR12</version> <!-- Ajusta según la versión de Spring Boot -->
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

 

Paso 2: Anotar la clase principal con @EnableEurekaServer

 

Dentro del paquete principal de tu aplicación, localiza o crea la clase con el método "main". Añade la anotación @EnableEurekaServer para que Spring la configure como servidor Eureka.

 

 
package com.ejemplo.eurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
 

 

Con esta simple configuración por anotación, nuestro proyecto Spring Boot ya estaría listo para levantar un Eureka Server completo.

 

Paso 3: Configurar application.properties

 

En src/main/resources/application.properties, define los ajustes de Eureka. Vamos a crear un servidor standalone, así que indicamos que no queremos que se registre a sí mismo ni consulte otros registros. Esto lo hacemos con las siguientes propiedades:

 

 
spring.application.name=eureka-server
server.port=8761

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
 

 

Este paso es clave. Sin estas propiedades, Eureka pensará que está trabajando con un Eureka Cluster e intentará registrarse como cliente, lo cual no tiene sentido cuando es el único servidor.

Atención: Si no indicas esas propiedades e intentas arrancar el servidor Eureka, recibirás un error porque no va a encontrar ninguna otra instancia de Eureka en la que registrarse como cliente.

 

 

Paso 4: Ejecutar la aplicación y comprobar el panel web

 

Arranca tu aplicación como cualquier otro proyecto Spring Boot (mvn spring-boot:run o desde tu IDE). Accede al panel de administración de Eureka en el puerto por defecto 8761:

http://localhost:8761/

 

Este dashboard te mostrará el estado del servidor y, más adelante, los microservicios registrados. Si ves un mensaje tipo “No instances available”, es completamente normal. Significa que aún no hay microservicios registrados con Eureka Client.

 

👉 Si todo ha ido bien, deberías ver algo como esto:

 

¿Qué pasa si cierro un servicio registrado?

 

Eureka implementa un sistema de latido (heartbeat). Cada cierto tiempo, los microservicios renuevan su registro. Si un servicio no responde durante el intervalo configurado (por defecto 90 segundos), Eureka lo considerará inactivo y lo eliminará del registro.

 

 

Conclusión

 

Con esta configuración básica, ya tienes un Eureka Server funcional, capaz de registrar múltiples microservicios, descubrirlos automáticamente y facilitar la comunicación entre ellos. En entornos de producción, se recomienda implementar un clúster con múltiples servidores Eureka, pero esta base es más que suficiente para comenzar en desarrollo.

 

¿Cuál sería el siguiente paso? Integrar Eureka con FeignClient o Spring Cloud Gateway para un sistema completo de descubrimiento, balanceo y comunicación entre servicios.

¡Nos vemos en el siguiente post!

Saludos.

 

Comentarios

Entradas populares de este blog

Componentes y Ventanas de Java Swing

Configurar Apache Tomcat en Eclipse

Creación de Webservice SOAP mediante Anotaciones