Estamos preparando el PDF de «Colas y procesamiento asíncrono». Se descargará automáticamente en cuanto esté listo.
← Lumbre

Sistemas Distribuidos · 6.º Colas y procesamiento asíncrono

Portada de Colas y procesamiento asíncrono

Colas y procesamiento asíncrono

✦ Llamar a otro servicio y esperar es frágil: si se cae, pierdes el trabajo · Sistemas Distribuidos · Ingeniería de Datos · en 9 minutos

Roadwise Consulting

Firmado y verificado · Biblioteca UNIV

Objetivo: Desacoplar servicios mediante brokers de mensajes y colas, entendiendo entregas, patrones de consumo y compensaciones entre acoplamiento, fiabilidad y orden.

9 min Sistemas Distribuidos · Ingeniería de Datos 18–30 años
Más
Colas y procesamiento asíncrono

Herramientas de la lección

◉ Entrar a La Matrix Sorpréndeme

Sobre este contenido

Ir a

Volver a Sistemas Distribuidos · 6.º semestre Cursos Explorar Mi cuenta Salir del modo estudio

Colas y procesamiento asíncrono

RabbitMQ: mensajería para tu aplicación
Vídeo en español que monta productor, broker y consumidores con colas reales.

Síncrono frente a asíncrono

La llamada síncrona espera respuesta y ata la disponibilidad de ambos. El patrón asíncrono deja un mensaje y sigue: quien lo procesa lo toma cuando puede, tolerando que el otro esté lento o caído.

Broker y colas

  • Un broker recibe, guarda y entrega mensajes entre productores y consumidores.
  • Una cola ordena mensajes para un grupo que los consume.
  • Un tema los reparte entre varios consumidores independientes.

Desacoplamiento

Productor y consumidor dejan de conocerse ni coincidir en el tiempo. Puedes añadir consumidores sin tocar el emisor, y un consumidor nuevo no rompe al resto: el contrato es el formato del mensaje.

Absorber picos

Cuando la demanda se dispara, la cola acumula trabajo y los consumidores lo digieren a su ritmo. La cola actúa como volante: la punta entra irregular y sale suave y procesable.

Entrega y duplicación

Los brokers ofrecen al menos una vez y a veces exactamente una vez. Como reintentar puede duplicar, el consumidor debe ser idempotente: procesar dos veces el mismo mensaje no debe dañar.

Orden y paralelismo

Preservar el orden estricto limita el paralelismo; para acelerar se particiona por clave, garantizando orden dentro de cada partición pero no global. Orden total y alto rendimiento tironean.

Colas muertas

Un mensaje que falla repetidamente se aísla en una cola de fallos para inspeccionarlo sin bloquear el flujo. Es la válvula que evita que un mensaje tóxico atascara a todos los consumidores.

Un emisor deja caer tarjetas-sobre en un canal horizontal donde ya se alinean varias; a la derecha dos consumidores las recogen a distinta velocidad y debajo un cubo guarda un sobre tachado.
El broker amortigua el pico en el buffer, cada consumidor va a su ritmo y lo que siempre falla se aparta.

Errores frecuentes

  • Esperar la respuesta dentro de la transacción y atar la suerte de dos servicios.
  • Consumidores que no son idempotentes y cobran dos veces al reintregar el mensaje.
  • Exigir orden global y renunciar al paralelismo que la cola ofrecía.

Ejemplo resuelto: cobros que sobreviven al proveedor caído

Un servicio de pagos falla a veces justo al llamar al cobrador. El rediseño:

  1. Publicar la orden de cobro en una cola duradera en vez de llamar en línea.
  2. Responder al usuario con el encargo aceptado, sin esperar el cobro completo.
  3. Consumir a ritmo sostenido, añadiendo consumidores cuando la cola crece.
  4. Reintentar con espera creciente y, si se agota, mover el mensaje a la cola muerta.
  5. Garantizar idempotencia por identificador de cobro para no duplicar cargos.

¿Para qué sirve en la realidad?

Casi toda integración entre servicios, del email a la liquidación, usa colas para no caerse junta. El desacople convierte una dependencia de disponibilidad en un contrato sobre el formato del mensaje.

Un servicio de pagos falla a veces bajo su operación de cobro. Procesar los cobros vía una cola duradera en vez de una llamada directa aporta sobre todo:

Fiarse de una cola hace innecesario que el consumidor sea idempotente.

Colas

Servidor que recibe, guarda y entrega mensajes
broker
Dejar un mensaje y seguir sin esperar es procesamiento...
asincrono
Amortiguar picos acumulando trabajo usa una...
cola
Cola donde van los mensajes que fallan repetidamente
muerta
Preservar orden por clave repartiendo se hace con...
particiones

Toca una tarjeta para ver la respuesta.

Ordena el recorrido de un mensaje asíncrono con reintentos:

Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.

Une cada pieza de la mensajería con su función.

      Desacoplar en tiempo y en fallo

      • Colas y asincronía
        • Desacople
          • ni se conocen
            • ni coinciden en el tiempo
            • Picos
              • el buffer amortigua
                • consumo a ritmo
                • Entrega
                  • al menos una vez
                    • idempotencia obligada
                    • Orden
                      • por clave en particiones
                        • global si se paga en paralelo

                      Tu servicio de correos envía facturas y a veces el proveedor de email está caído. ¿Cómo convertir eso en flujo con cola, y qué debes garantizar en el consumidor por los reintentos?

                      Tu texto se guarda sólo en este dispositivo.

                      Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.
                      Más sobre esta lección
                      Explora temas relacionados

                      Conceptos

                      Comentarios

                      Inicia sesión para comentar.

                      Todavía no hay comentarios. Sé la primera persona en opinar.