Microserviços com Spring Boot - Guia Introdutório
Página 1 - O que são Microserviços?
Microserviços são um estilo de arquitetura onde uma aplicação é dividida em pequenos serviços
independentes. Cada serviço é responsável por uma funcionalidade específica e se comunica com os
outros por meio de APIs (geralmente REST).
Benefícios:
• Escalabilidade
• Independência de desenvolvimento
• Manutenção facilitada
Página 2 - Spring Boot e Microserviços
O Spring Boot é ideal para construir microserviços por oferecer:
• Inicialização rápida
• Menos configuração
• Suporte nativo a REST, JPA, Security
• Integração com Spring Cloud
Página 3 - Exemplo de Estrutura de Microserviços
• api-gateway (controle de entrada)
• usuario-service (cadastro e gestão de usuários)
• produto-service (catálogo de produtos)
• pedido-service (processamento de pedidos)
Cada um pode ser um projeto Spring Boot separado.
Página 4 - Criando um Microserviço com Spring Boot
1. Acesse [Link]
2. Selecione: Maven, Java, Spring Boot
3. Adicione as dependências:
4. Spring Web
5. Spring Data JPA
6. H2 Database ou MySQL
7. Baixe e importe o projeto
Página 5 - Criando um Endpoint REST
1
@RestController
@RequestMapping("/usuarios")
public class UsuarioController {
@GetMapping
public List<Usuario> listar() {
return [Link]();
}
}
Página 6 - Comunicando Microserviços (RestTemplate)
@Service
public class ProdutoClient {
private final RestTemplate restTemplate = new RestTemplate();
public Produto buscarProduto(Long id) {
return [Link]("[Link] +
id, [Link]);
}
}
Para projetos maiores, use o WebClient ou Feign com Spring Cloud.
Página 7 - Service Discovery com Eureka
• Adicione a dependência: spring-cloud-starter-netflix-eureka-client
• Anote sua classe principal com @EnableEurekaClient
• Configure o [Link] com as informações do servidor Eureka
Isso permite que os serviços se descubram automaticamente.
Página 8 - API Gateway com Spring Cloud Gateway
O Gateway atua como ponto de entrada para os microserviços:
spring:
cloud:
gateway:
routes:
- id: usuario-service
uri: [Link]
2
predicates:
- Path=/usuarios/**
Página 9 - Comunicação assíncrona com RabbitMQ
Para integrações assíncronas:
• Adicione spring-boot-starter-amqp
• Use RabbitTemplate para enviar mensagens
@Autowired
private RabbitTemplate rabbitTemplate;
public void enviarMensagem(String mensagem) {
[Link]("[Link]", mensagem);
}
Página 10 - Conclusão e Próximos Passos
Com Spring Boot é possível construir microserviços de forma rápida e estruturada.
Próximos passos:
• Usar Docker para conteinerizar os serviços
• Configurar circuit breaker com Resilience4j
• Monitoramento com Spring Boot Actuator + Prometheus/Grafana
Explore Spring Cloud e crie sua própria arquitetura de microsserviços!