2013-02-07 11 views
7

Sto cercando alcuni consigli su come configurare al meglio i miei scambi su rabbitMQ.Scambi di argomento RabbitMQ e round robin

Sto provando a utilizzare uno scambio di argomenti in una metodologia round robin. Ogni consumatore ha una propria coda (univoca) associata ad uno scambio di argomenti. Vorrei che lo scambio girasse i messaggi di robin su ogni coda dei consumatori per lo stesso argomento, diciamo per esempio *.log.

Ho provato più combinazioni e sembra che sia in grado di inviare contemporaneamente messaggi alle code dei consumatori, il che significa che sto elaborando il messaggio due volte, una volta in ogni consumatore.

Per chiarezza ho anche uno scambio di fanout, che uso per "controllare" i consumatori (start, stop ecc.) Dovrebbe rimanere in vigore in qualsiasi risultato.

Qualsiasi indicazione sul modo migliore per raggiungere il risultato dichiarato sarebbe grande.

+3

Perché vuoi radunare i messaggi? se si desidera distribuire il lavoro, quindi pomparlo tutto in una coda e avere più consumatori di "file di registro" che leggono da quella coda ... – kzhen

+0

Cercando di scoprire lo stesso. quale soluzione hai trovato per questo? – YaOg

+0

Ho risolto questo problema utilizzando i collegamenti e2e (scambio-scambio). http://stackoverflow.com/a/39577177/67065 – Raine

risposta

10

Ogni consumatore ha la propria (unica) di nome coda collegato a un cambio argomento

Il trucco è quello di avere ogni lavoratore/consumatore che si desidera round-robin tra di impostare una coda di nome e di tutti usano la stessa coda invece di crearne una propria.

Quindi è possibile creare una coda denominata denominata "registro" per tutti gli operai "di registro". Dovresti creare una coda con nome diverso per dire "pippo" per tutti gli operai "pippo". Le richieste verranno consegnate round-robin a tutti i consumatori che guardano la stessa coda.

Problemi correlati