Módulo 14: Técnicas Avanzadas de Spring Boot
Objetivos del Módulo
Al finalizar este módulo, usted será capaz de:
- Comprender la programación reactiva con Spring WebFlux
- Implementar un sistema de caché con Redis
- Configurar la mensajería asíncrona con RabbitMQ
- Crear tareas programadas con @Scheduled
- Desarrollar aplicaciones en tiempo real con WebSockets
Prerrequisitos
Antes de comenzar este módulo, asegúrese de dominar:
- Módulos 1-12: Fundamentos completos de Spring Boot
- Módulo 13: Arquitectura de Microservicios
- Docker (para Redis, RabbitMQ)
- Conceptos de programación asíncrona
Plan del Módulo
Capítulos Teóricos
| # | Capítulo | Duración | Descripción |
|---|---|---|---|
| 1 | Programación Reactiva | 1h30 | WebFlux, Mono, Flux, R2DBC |
| 2 | Caché con Redis | 1h | @Cacheable, @CacheEvict, Redis |
| 3 | Mensajería Asíncrona | 1h15 | RabbitMQ, Spring AMQP |
| 4 | Tareas Programadas | 45min | @Scheduled, @Async, Cron |
| 5 | WebSockets | 1h | STOMP, SockJS, tiempo real |
Trabajos Prácticos
| # | TP | Duración | Descripción |
|---|---|---|---|
| 1 | Caché Redis | 1h | Cacheo de una API |
| 2 | Mensajería RabbitMQ | 1h30 | Sistema de notificaciones |
| 3 | WebSocket Chat | 1h30 | Aplicación de chat en tiempo real |
| 4 | Tareas Programadas | 45min | Procesos batch y reportes automáticos |
Duración total estimada: 10 horas
Conceptos Clave
Programación Reactiva vs Imperativa
Imperativa (Spring MVC):
- Un hilo por solicitud
- Bloqueante
- Sencillo de comprender
- Escalabilidad limitada
Reactiva (WebFlux):
- Event loop
- No bloqueante
- Alta escalabilidad
- Curva de aprendizaje
Cuándo Usar Qué
| Caso de Uso | Tecnología |
|---|---|
| API CRUD clásica | Spring MVC |
| Alta concurrencia | WebFlux |
| Datos leídos frecuentemente | Caché Redis |
| Desacoplamiento de servicios | RabbitMQ |
| Notificaciones en tiempo real | WebSocket |
| Reportes periódicos | @Scheduled |
Stack Técnico
| Tecnología | Versión | Uso |
|---|---|---|
| Spring WebFlux | 3.2.x | Programación reactiva |
| Project Reactor | 3.6.x | Mono/Flux |
| Redis | 7.x | Caché distribuido |
| RabbitMQ | 3.12.x | Message broker |
| STOMP | 1.2 | Mensajería WebSocket |
Arquitectura de los TPs
Aplicación Avanzada
├── API REST (Spring MVC o WebFlux)
├── Capa de Caché (Redis)
├── Mensajería (RabbitMQ)
├── WebSocket (STOMP)
└── Tareas Programadas
Listo para Comenzar
Asegúrese de tener Docker instalado para este módulo:
# Verificar Docker
docker --version
# Iniciar Redis
docker run -d --name redis -p 6379:6379 redis:7-alpine
# Iniciar RabbitMQ
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
Comenzar el Capítulo 1: Programación Reactiva