Sono in grado di creare uno scambio fanout utilizzando il tutorial Publish/Subscribe RabbitMQ Java e qualsiasi utente connesso riceverà una copia di un messaggio. Invece di dichiarare uno scambio e legare dinamicamente/programmaticamente, vorrei creare lo scambio e l'associazione prima di collegare qualsiasi consumatore. Ho fatto questo attraverso la console di gestione RabbitMQ. Per qualche motivo, tuttavia, i miei utenti ricevono messaggi in modalità round robin, piuttosto che ricevere tutte le copie del messaggio. Cosa mi manca? Ecco alcuni frammenti di codice:Problemi con lo scambio fanout RabbitMQ
Editore:
channel.basicPublish("public", "", null, rowId.getBytes("UTF-8"));
dei consumatori:
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume("myqueue", false, consumer);
... E nella console Gestione RabbitMQ, ho creato uno scambio "pubblico" di tipo "fan-out" e ho impostato un'associazione da quella borsa su "myqueue".
Apprezzerei qualsiasi aiuto!
Questa risposta è stata molto utile per me, grazie! Continuavo a pensare che ogni consumatore legato riceverà una copia del messaggio, piuttosto che ogni coda legata. Questo ha risolto il mio problema. Grazie ancora! – littleK