Ich bin in der Lage, einen Fanout-Austausch mit der Publish/Subscribe RabbitMQ Java-Tutorial erstellen, und jeder angeschlossene Verbraucher wird eine Kopie einer Nachricht erhalten. Anstatt einen Austausch zu deklarieren und dynamisch/programmatisch zu binden, möchte ich den Austausch und die Bindung erstellen, bevor ich irgendwelche Konsumenten verbinde. Ich habe dies über die RabbitMQ Management Console getan. Aus irgendeinem Grund empfangen meine Kunden jedoch Nachrichten in einer Round-Robin-Weise, anstatt alle Kopien der Nachricht zu empfangen. Was vermisse ich? Hier sind einige Code-Schnipsel:Probleme mit RabbitMQ Fanout Austausch
Verlag:
channel.basicPublish("public", "", null, rowId.getBytes("UTF-8"));
Verbraucher:
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume("myqueue", false, consumer);
... Und in der RabbitMQ Management-Konsole, habe ich einen Austausch "public" vom Typ "Fanout" und ich habe eine Bindung von diesem Austausch an "meine Warteschlange" gesetzt.
würde ich jede Hilfe dankbar!
Diese Antwort war sehr hilfreich für mich, danke! Ich habe immer daran gedacht, dass jeder gebundene Verbraucher eine Kopie der Nachricht erhält und nicht jede gebundene Warteschlange. Das hat mein Problem behoben. Danke noch einmal! – littleK