Destino Dev

Cursos

Microsserviços com Java + Spring Cloud + Feign

Código do curso: github.com/johnpires/microsservicos-java-spring-cloud-feign

Domine a arquitetura de microsserviços utilizando o ecossistema Java com Spring Cloud. Neste curso avançado, você aprenderá a projetar, implementar e operar sistemas distribuídos modernos, explorando desde os fundamentos teóricos até a prática com Spring Boot, Spring Cloud Netflix (Eureka, Feign), Spring Cloud Gateway, Resilience4j e muito mais.

Ao longo das aulas, você construirá microsserviços reais que se comunicam entre si, implementará service discovery, load balancing, circuit breaker e tracing distribuído. Cada conceito é apresentado com exemplos práticos e código funcional, preparando você para os desafios do mercado enterprise Java.

Ao final do curso, você será capaz de arquitetar e entregar sistemas baseados em microsserviços com Java, utilizando as melhores práticas de resiliência, observabilidade e deploy em ambientes de produção com Docker e Kubernetes.

O que você vai aprender

Ao final deste curso, você será capaz de:

Pré-requisitos

Conhecimento sólido de Java e Spring Boot (nível intermediário ou avançado). Familiaridade com APIs REST e JPA/Hibernate. Noções de Docker e linha de comando Linux. Ter completado o curso de Spring Boot Avançado é recomendado.

Conteúdo do curso

Módulo 1: Fundamentos de Microsserviços e Arquitetura Distribuída

Compreenda os princípios fundamentais da arquitetura de microsserviços, seus benefícios, desafios e como ela se diferencia da arquitetura monolítica.

  1. Arquitetura Monolítica vs. Microsserviços (20 min)
  2. Princípios e Padrões de Design para Microsserviços (25 min)
  3. Introdução ao Spring Cloud e seus Componentes (20 min)
  4. Configurando o Ambiente de Desenvolvimento (20 min)
  5. Comunicação Síncrona e Assíncrona em Sistemas Distribuídos (25 min)
  6. Observabilidade: Logs, Métricas e Tracing em Microsserviços (20 min)

Módulo 2: Service Discovery e Registro com Eureka

Implemente service discovery usando Eureka Server e Eureka Client, permitindo que seus microsserviços se encontrem dinamicamente sem configurações estáticas.

  1. O que é Service Discovery e por que é essencial (15 min)
  2. Implementando o Eureka Server (20 min)
  3. Registrando Microsserviços como Eureka Clients (20 min)
  4. Load Balancing com Spring Cloud LoadBalancer (20 min)
  5. Configurações Avançadas do Eureka: Zones, Metadata e Health Checks (20 min)
  6. Desafio: Multi-Instance Setup com Docker Compose (25 min)

Módulo 3: API Gateway com Spring Cloud Gateway

Configure um API Gateway centralizado com Spring Cloud Gateway para roteamento, filtragem, autenticação e rate limiting de requisições entre microsserviços.

  1. O que é um API Gateway e por que usar (15 min)
  2. Implementando o Spring Cloud Gateway (25 min)
  3. Filtros Customizados: Autenticação JWT no Gateway (30 min)
  4. Rate Limiting e Circuit Breaker no Gateway (25 min)
  5. Logging, Tracing e Monitoramento no Gateway (20 min)
  6. Roteamento Avançado: Predicates, Path Rewriting e Versionamento de API (20 min)
  7. Desafio: Gateway Completo com Autenticação e Rate Limiting (30 min)

Módulo 4: Comunicação entre Serviços com Feign Client

Domine a comunicação síncrona entre microsserviços utilizando OpenFeign, criando clientes HTTP declarativos que se integram ao service discovery.

  1. Introducao ao OpenFeign: Cliente HTTP Declarativo (20 min)
  2. Feign Avancado: Headers, Interceptors e Configuracao (25 min)
  3. Feign com Fallback: Integrando Resilience4j (25 min)
  4. Orquestracao de Chamadas: Pedido + Estoque + Pagamento (30 min)
  5. Paginacao, Query Params Dinamicos e Testes de Contrato (20 min)
  6. Desafio: Sistema Completo com Feign, Fallback e Testes (30 min)
  7. Feign OAuth2 e Comunicacao Servico a Servico Segura (20 min)

Módulo 5: Resiliência e Tolerância a Falhas com Resilience4j

Implemente padrões de resiliência como Circuit Breaker, Retry, Rate Limiter e Bulkhead usando Resilience4j para garantir que seu sistema se comporte bem sob falhas.

  1. Circuit Breaker Pattern na Pratica com Resilience4j (25 min)
  2. Retry e Rate Limiter: Resiliencia Completa (25 min)
  3. TimeLimiter: Timeout Avancado por Operacao (20 min)
  4. Monitoramento de Resiliencia com Prometheus e Grafana (20 min)
  5. Cache e Degradacao Graciosa (25 min)
  6. Testes de Resiliencia: WireMock e Chaos Engineering (25 min)
  7. Desafio: Sistema Completamente Resiliente (30 min)

Módulo 6: Observabilidade, Docker e Projeto Final

Configure distributed tracing com Zipkin, métricas com Actuator e Prometheus, e implante todo o ecossistema com Docker Compose. Construa o projeto final de e-commerce distribuído.

  1. Distributed Tracing com Micrometer e Zipkin (25 min)
  2. Metricas com Spring Actuator e Prometheus (20 min)
  3. Containerizando Microsservicos com Docker (25 min)
  4. Docker Compose: Deploy do Ecossistema Completo (30 min)
  5. Projeto Final: E-Commerce Distribuido com Microsservicos (40 min)
  6. Deploy em Producao: Kubernetes e CI/CD (30 min)
  7. Projeto Final: Construindo o E-Commerce Completo do Zero (45 min)