Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

RabbitMQ — Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • RabbitMQ

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a desarrolladores que ya dominan los fundamentos de RabbitMQ y necesitan diseñar arquitecturas de mensajería robustas para entornos productivos, este curso profundiza en los mecanismos avanzados del broker: topologías de routing complejas, gestión fiable de entregas y patrones de integración entre servicios. A lo largo de ocho horas el participante comparará los cuatro tipos de exchange, diseñará topologías con múltiples patrones de routing, configurará acknowledgements manuales y dead-letter queues, implementará el patrón RPC sobre RabbitMQ y diagnosticará flujos con problemas reales usando la Management UI y las herramientas de línea de comandos. Al finalizar, el participante será capaz de integrar RabbitMQ como broker en una aplicación con productores y consumidores concurrentes, tomando decisiones justificadas sobre durabilidad, fiabilidad y rendimiento.

  1. Comparar el comportamiento de los cuatro tipos de exchange (direct, fanout, topic, headers) y justificar la elección más adecuada ante un escenario de negocio concreto.
  2. Justificar la configuración de durabilidad de colas y mensajes frente a reinicios del broker, evaluando el equilibrio entre rendimiento y fiabilidad.
  3. Diseñar una topología de exchanges, colas y bindings que satisfaga los requisitos de routing de un sistema de notificaciones empleando al menos dos patrones distintos.
  4. Diseñar e implementar una dead-letter queue que capture mensajes rechazados o expirados, aplicando TTL de mensajes y políticas de reencaminamiento.
  5. Adaptar la configuración de acknowledgements y prefetch count para garantizar la entrega fiable de mensajes en flujos con consumidores lentos.
  6. Adaptar el patrón RPC sobre RabbitMQ gestionando reply-to, correlation-id, timeouts y respuestas huérfanas entre dos servicios.
  7. Integrar RabbitMQ en una aplicación cliente/servidor con al menos un productor y dos consumidores concurrentes, gestionando explícitamente conexiones y canales.
  8. Depurar flujos de mensajes bloqueados o con pérdidas utilizando la Management UI y herramientas de CLI, identificando y corrigiendo la causa raíz.

Bloque 1 — Modelo de routing avanzado Se analizan en profundidad los cuatro tipos de exchange disponibles en RabbitMQ (direct, fanout, topic y headers), contrastando su semántica de enrutamiento, casos de uso y limitaciones. A partir de ese análisis comparativo se diseña una topología completa de exchanges, colas y bindings orientada a un sistema de notificaciones real que combina routing directo y basado en patrones de topic, prestando especial atención a la legibilidad y mantenibilidad de los bindings resultantes.

Bloque 2 — Fiabilidad y persistencia de mensajes Se examina el impacto de las opciones de durabilidad —colas duraderas frente a transitorias y mensajes persistentes frente a no persistentes— ante escenarios de reinicio inesperado del broker, cuantificando el coste en latencia y throughput. Sobre esa base se configura el mecanismo de acknowledgements manuales junto con el prefetch count para evitar la saturación de consumidores lentos sin comprometer la fiabilidad de entrega. Se completa el bloque con el diseño e implementación de una dead-letter queue que captura mensajes rechazados o expirados, incluyendo la definición de TTL y la política de reencaminamiento hacia colas de error.

Bloque 3 — Patrones de integración y concurrencia Se implementa el patrón RPC sobre RabbitMQ mediante las propiedades reply-to y correlation-id, abordando la gestión de timeouts y el descarte de respuestas huérfanas para construir llamadas síncronas fiables entre servicios. A continuación se integra el broker en una aplicación cliente/servidor real que conecta un productor con dos consumidores concurrentes, prestando atención explícita al ciclo de vida de conexiones y canales y a la correcta liberación de recursos.

Bloque 4 — Diagnóstico y resolución de problemas Se trabaja sobre flujos de mensajes bloqueados o con pérdidas reproducidos en laboratorio. Mediante la Management UI se inspeccionan métricas de colas, tasas de publicación/consumo y estados de conexión; con rabbitmqctl y rabbitmq-diagnostics se recogen trazas y se identifican cuellos de botella o configuraciones incorrectas. Cada ejercicio concluye con la corrección de la causa raíz y la verificación del restablecimiento del flujo normal.

  • RabbitMQ 3.12 o superior con el plugin rabbitmq_management habilitado.
  • Docker Desktop (recomendado) o instalación nativa del broker con acceso a rabbitmqctl y rabbitmq-diagnostics.
  • Entorno de desarrollo con Node.js ≥ 18 (librería amqplib) o Python ≥ 3.10 (librería pika); se proporcionan ejemplos en ambos lenguajes.
  • Editor de código con soporte para el lenguaje elegido (VS Code recomendado).
  • Acceso a la Management UI en http://localhost:15672 con credenciales de administrador.
  • Conexión a Internet para la descarga de imágenes Docker y dependencias de paquetes.
  • Conceptos fundamentales de mensajería asíncrona: productor, consumidor, cola y broker.
  • Instalación y arranque de RabbitMQ; uso básico de la Management UI.
  • Publicación y consumo de mensajes mediante una librería cliente (p. ej. amqplib, pika o equivalente).
  • Comprensión del modelo AMQP 0-9-1: exchange por defecto, declaración de colas y propiedades básicas de mensajes.