Al crear un intercambio Directo, dirigirá el mensaje a la cola que esté ligada a él.
Ok Julio, pero ¿si tengo 2 colas en este intercambio?
¡Buena pregunta amigo! 😉
En este caso, la Clave de Enrutamiento tiene efecto.
La Clave de Enrutamiento es un atributo encargado de informar al intercambio a qué cola debe dirigirse el mensaje.
Nota: El intercambio sólo dirigirá el mensaje recibido a colas que tengan claves de enrutamiento exactamente iguales.
Nota 2: Si las colas vinculadas tienen la misma clave de enrutamiento, este mensaje se dirige a esas colas en paralelo.
Fanout
A diferencia del tipo Directo, en el Fanout, no tenemos la figura de la Clave de Enrutamiento.
Cuando un intercambio Fanout recibe un mensaje, se envía una copia de este mensaje a todas las colas ligadas a él.
Topic
Imagina que el tipo de Topic es el tipo Directo pero con particularidad, los Patrones de Claves de Enrutamiento. En el Topic, es posible utilizar patrones para las claves de enrutamiento.
Estos patrones pueden ser creados utilizando los caracteres * y #.
Cuando creamos un patrón de clave de enrutamiento con #, le estamos diciendo al intercambio que este # puede ser reemplazado por 0 o n palabras. Cuando usamos *, le estamos diciendo al intercambio que * sólo puede ser reemplazado por 1 palabra.
Por lo tanto, cuando un exchange de tipo Topic recibe un mensaje, comprobará la Routing Key del mensaje, la comparará con las Routing Keys de las colas y enviará una copia de ese mensaje a todas las colas en las que se combinen las Routing Keys (mensaje y cola).