Tenemos una aplicación que utilizará RabbitMQ y varias colas diferentes para pasar mensajes entre niveles.Tema Exchange vs Direct Exchange en RabbitMQ
Inicialmente, estaba planeando usar múltiples intercambios directos, con uno para cada tipo de mensaje, pero parece que tener un solo intercambio de temas con colas usando diferentes enlaces de clave de enrutamiento logrará lo mismo.
Tener un solo intercambio también parece que sería un poco más fácil de mantener, pero me preguntaba si hay algún beneficio (si lo hay) de hacerlo de una manera sobre la otra?
Opción 1, el uso de múltiples intercambios directos:
ExchangeA (type: direct)
-QueueA
ExchangeB (type: direct)
-QueueB
ExchangeC (type: direct)
-QueueC
Opción 2, utilizando un solo cambio de tema:
Exchange (type: topic)
-QueueA (receives messages from exchange with routing key of "TypeA")
-QueueB (receives messages from exchange with routing key of "TypeB")
-QueueC (receives messages from exchange with routing key of "TypeC")
Estoy de acuerdo. Múltiples colas con claves de enrutamiento apropiadas es mucho más fácil de administrar. La única ventaja de la opción 1 que viene a la mente es que múltiples intercambios se pueden alojar en hardware por separado, lo que permite obtener una escala vertical. Sin embargo, si su hardware oscila entonces tal vez nunca tenga que tomar esta ruta. –
Creo que la ventaja de usar Topic es que si en el futuro necesita enviar el mismo mensaje a múltiples colas en su intercambio, su opción 2 sería más conveniente. – gigi2