El patrón publicar-suscribir significa que un mensaje enviado por un productor será recibido por múltiples consumidores. Dado que un mensaje será consumido y procesado por varios consumidores, también se le llama patrón de difusión o patrón de uno a muchos.
Nota: Debido a que RabbitMQ implementa el patrón publicar-suscribir utilizando el tipo de intercambio fanout, también se le llama patrón fanout.
Diagrama de Arquitectura
Explicación:
- P representa el productor, C1 y C2 representan consumidores, el color rojo representa colas, y X representa el intercambio.
- El intercambio es responsable de enviar mensajes a todas las colas vinculadas al intercambio.
- Se pueden definir múltiples colas, cada una vinculada al mismo intercambio.
- Cada cola puede tener uno o más consumidores.
Consejo: En la misma cola, un mensaje solo puede ser procesado por un consumidor. La razón por la cual el patrón fanout puede lograr la difusión de mensajes es esencialmente a través de múltiples colas de mensajes.
Casos de Uso
El patrón publicar-suscribir es un patrón de consumo común de uno a muchos. Por ejemplo, después de realizar un pedido en un comercio electrónico, se genera un mensaje de pedido. El módulo de almacén se suscribe al mensaje de pedido para procesar envíos, el módulo de notificaciones se suscribe al mensaje de pedido para enviar mensajes de texto, el módulo de puntos se suscribe al mensaje de pedido para procesar puntos, etc. Al suscribirse a los mensajes según sea necesario, se logra la expansión del negocio, y es un patrón de diseño de bajo acoplamiento.