Microsserviços com Java + Spring Cloud + Feign
- Nível: Avançado
- Módulos: 6
- Aulas: 40
- Tempo de leitura: 16h 10min
- Tecnologias: Java
- Preço: Gratuito
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:
- Projetar arquiteturas de microsserviços com Java e Spring Cloud
- Implementar service discovery com Eureka Server e Eureka Client
- Criar um API Gateway com Spring Cloud Gateway e filtros customizados
- Implementar comunicação entre serviços com Feign Client
- Aplicar resiliência com Resilience4j (Circuit Breaker, Retry, Rate Limiter)
- Configurar tracing distribuído com Micrometer e Zipkin
- Fazer deploy do ecossistema completo com Docker Compose
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.
- Arquitetura Monolítica vs. Microsserviços (20 min)
- Princípios e Padrões de Design para Microsserviços (25 min)
- Introdução ao Spring Cloud e seus Componentes (20 min)
- Configurando o Ambiente de Desenvolvimento (20 min)
- Comunicação Síncrona e Assíncrona em Sistemas Distribuídos (25 min)
- 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.
- O que é Service Discovery e por que é essencial (15 min)
- Implementando o Eureka Server (20 min)
- Registrando Microsserviços como Eureka Clients (20 min)
- Load Balancing com Spring Cloud LoadBalancer (20 min)
- Configurações Avançadas do Eureka: Zones, Metadata e Health Checks (20 min)
- 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.
- O que é um API Gateway e por que usar (15 min)
- Implementando o Spring Cloud Gateway (25 min)
- Filtros Customizados: Autenticação JWT no Gateway (30 min)
- Rate Limiting e Circuit Breaker no Gateway (25 min)
- Logging, Tracing e Monitoramento no Gateway (20 min)
- Roteamento Avançado: Predicates, Path Rewriting e Versionamento de API (20 min)
- 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.
- Introducao ao OpenFeign: Cliente HTTP Declarativo (20 min)
- Feign Avancado: Headers, Interceptors e Configuracao (25 min)
- Feign com Fallback: Integrando Resilience4j (25 min)
- Orquestracao de Chamadas: Pedido + Estoque + Pagamento (30 min)
- Paginacao, Query Params Dinamicos e Testes de Contrato (20 min)
- Desafio: Sistema Completo com Feign, Fallback e Testes (30 min)
- 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.
- Circuit Breaker Pattern na Pratica com Resilience4j (25 min)
- Retry e Rate Limiter: Resiliencia Completa (25 min)
- TimeLimiter: Timeout Avancado por Operacao (20 min)
- Monitoramento de Resiliencia com Prometheus e Grafana (20 min)
- Cache e Degradacao Graciosa (25 min)
- Testes de Resiliencia: WireMock e Chaos Engineering (25 min)
- 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.
- Distributed Tracing com Micrometer e Zipkin (25 min)
- Metricas com Spring Actuator e Prometheus (20 min)
- Containerizando Microsservicos com Docker (25 min)
- Docker Compose: Deploy do Ecossistema Completo (30 min)
- Projeto Final: E-Commerce Distribuido com Microsservicos (40 min)
- Deploy em Producao: Kubernetes e CI/CD (30 min)
- Projeto Final: Construindo o E-Commerce Completo do Zero (45 min)