Aprender SpringBoot Microservicios con Spring Cloud

Módulo del curso de SpringBoot

SpringBoot
SpringBoot
Módulo del curso
15 lecciones
3 ejercicios
Actualizado: 14/02/2025

Módulo: Microservicios con Spring Cloud

Este módulo forma parte del curso de SpringBoot. Incluye 15 lecciones y 3 ejercicios de programación .

Spring Boot 3 y Spring Cloud son dos herramientas fundamentales para la creación de microservicios en el ecosistema Java. Este módulo se centra en cómo utilizar Spring Cloud para desarrollar y gestionar microservicios eficientemente con Spring Boot 3.

Configuración inicial

Para comenzar, necesitamos configurar nuestro proyecto de Spring Boot 3. Utilizaremos Spring Initializr para generar la estructura básica del proyecto.

spring init --dependencies=web,cloud-config-client,cloud-eureka spring-cloud-microservices

Dependencias en build.gradle

Asegúrate de incluir las siguientes dependencias en tu archivo build.gradle:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.cloud:spring-cloud-starter-config'
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
}

Configuración del servidor de configuración

Spring Cloud Config Server permite centralizar la configuración de tus microservicios. Primero, crea un nuevo proyecto para el servidor de configuración.

Configuración de application.yml

server:
  port: 8888

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/tu-repositorio/config-repo

Clase principal del servidor de configuración

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

Registro de microservicios con Eureka

Eureka es un servicio de descubrimiento que facilita la comunicación entre microservicios.

Configuración de application.yml en el cliente Eureka

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

Clase principal del cliente Eureka

@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }
}

Balanceo de carga con Ribbon

Ribbon se utiliza para balancear la carga entre instancias de microservicios.

Configuración de Ribbon en application.yml

ribbon:
  eureka:
    enabled: true
  listOfServers: localhost:8081,localhost:8082

Clase principal

@SpringBootApplication
@EnableDiscoveryClient
public class RibbonApplication {
    public static void main(String[] args) {
        SpringApplication.run(RibbonApplication.class, args);
    }
}

Comunicación entre microservicios con Feign

Feign simplifica la comunicación entre microservicios al proporcionar una interfaz RESTful.

Configuración de Feign en application.yml

feign:
  hystrix:
    enabled: true

Interfaz Feign

@FeignClient(name = "service-name")
public interface ServiceClient {
    @GetMapping("/endpoint")
    String getData();
}

Clase principal

@SpringBootApplication
@EnableFeignClients
public class FeignApplication {
    public static void main(String[] args) {
        SpringApplication.run(FeignApplication.class, args);
    }
}

Explora más sobre SpringBoot

Descubre más recursos de SpringBoot

Alan Sastre - Autor del curso

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, SpringBoot es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.