Saltar al contenido
RabbitMQWorkersBackpressure

Escala de consumidores en RabbitMQ

El throughput sale del prefetch, la estrategia de ack y las routing keys similares a particiones — no de añadir consumidores que compiten por el mismo conjunto sin ack.

Experiencia personal

Pipelines de ecommerce y workers con RabbitMQ (AMQP): consumidores en competencia, estrategia de ack y la diferencia entre una routing key caliente y trabajo que sí puede escalar en horizontal.

Perspectiva técnica

Escalar consumidores en horizontal solo funciona si el broker puede entregar trabajo independiente. Una sola routing key caliente, un lock global en el worker o un upsert sobre la misma fila te serializa sin importar el número de consumidores.

Prefetch es el primer dial. Demasiado alto, y un consumidor lento retiene un conjunto grande sin ack. Demasiado bajo, y el broker se vuelve charlatán. Haz ack después del efecto secundario que no puedes permitirte duplicar — o haz el handler idempotente y haz ack antes.

Los mensajes venenosos necesitan un camino de dead-letter con reintento acotado. El requeue infinito es cómo un payload malo tumba una flota.

Architecture

Broker, consumidores en competencia, dead letter

Publishers

Exchange

Queue

Worker

Worker

Worker

Dead letter

Perspectiva técnica. Escala consumidores solo cuando el trabajo es particionable.