📊 Capítulo 17: Microsserviços com Spring Cloud
Especialização Backend com Java 21 & Spring Boot 3
🗺️ A Topologia de Microsserviços com Spring Cloud
flowchart TD
CLIENT["Cliente / Web / Mobile"]
--> GATEWAY["Spring Cloud Gateway\n(Roteamento, Rate Limiting, Filtros de Auth JWT)"]
GATEWAY --> EUREKA["Service Discovery (Eureka / Consul)"]
GATEWAY --> MS_USERS["MS Usuários (:8081)"]
GATEWAY --> MS_ORDERS["MS Pedidos (:8082)"]
GATEWAY --> MS_PAY["MS Pagamentos (:8083)"]
MS_ORDERS -.-> |"Comunicação Síncrona via OpenFeign / HTTP"| MS_USERS
style CLIENT fill:#ede7f6,stroke:#512da8,stroke-width:2px
style GATEWAY fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style EUREKA fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
style MS_USERS fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px
style MS_ORDERS fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px
style MS_PAY fill:#c8e6c9,stroke:#2e7d32,stroke-width:1.5px
🎯 Slide 1: Spring Cloud Gateway (Ponto Único de Entrada)
-
Roteamento Dinâmico: Direciona requisições baseado em caminhos (
/api/v1/pedidos/**$\to$lb://ms-pedidos). -
Filtros Globais: Autenticação centralizada de tokens JWT, injeção de cabeçalhos de rastreamento (
X-Correlation-Id) e CORS unificado. - Reativo e Não-Bloqueante: Construído sobre Netty e Project Reactor.
🎯 Slide 2: Service Discovery & Load Balancing
-
Registro Dinâmico: Cada instância de microsserviço se registra automaticamente no Eureka com seu IP e porta efêmera.
- Client-Side Load Balancing (Spring Cloud LoadBalancer): O Gateway e os clientes distribuem o tráfego entre instâncias saudáveis via algoritmo Round-Robin.
🎯 Slide 3: Comunicação Inter-Serviços com OpenFeign
@FeignClient(name = "ms-catalogo", url = "${servicos.catalogo.url}")
public interface CatalogoClient {
@GetMapping("/api/v1/produtos/{id}")
ProdutoDTO buscarProdutoPorId(@PathVariable("id") Long id);
}
- Cria clientes HTTP declarativos tipados com zero código manual de
HttpClient!
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim