2012-06-28 7 views
9

Ho uno scenario in cui ho una serie di processi che devo eseguire, ogni passaggio è fatto e ridimensionato in applicazioni indipendenti. Sto usando scambi di argomenti per tutti gli scambi. topologia corrente è qualcosa di simile:RabbitMQ Scambi di argomenti: 1 scambio vs più scambi

P -> X -> Q -> C/P -> X -> Q -> C

Siamo "versioning" le nostre code a che fare con i requisiti probabili cambia a effettuare struttura del messaggio. Attacchi potrebbe essere simile a questa:

step1.exchange legato a step1.v1.queue con step1.v1 chiave vincolante

step1.exchange legato a step1.v2.queue con il legame step1.v2 chiave

Esistono altri schemi di rilegatura che non sono correlati alla versione che rendono anche gli scambi di attualità la scelta appropriata. Tuttavia potremmo farcela usando solo uno scambio per realizzare la stessa cosa.

TLDR: È un vantaggio utilizzare più scambi di attualità anziché uno scambio di attualità quando il caso d'uso potrebbe funzionare in entrambi i modi?

+0

Grazie @robthewolf. L'utilizzo di scambi separati aiuta certamente a concettualizzare, spiegare e documentare la topologia. Ovviamente richiede un po 'più di setup.Sono molto interessato anche all'impatto sulle prestazioni. –

risposta

0

ho semplicemente copiare alcuni frammenti chiave per voi.
https://spring.io/blog/2011/04/01/routing-topologies-for-performance-and-scalability-with-rabbitmq/

  • Se si dispone di un dominio finito di chiavi di routing nel grafico di un'applicazione poi molti scambi fanout potrebbe essere la giusta misura (1: 1 mapping di scambio per chiave di routing)

  • Se si dispone di un numero potenzialmente infinito di chiavi di routing, considerare lo scambio di argomenti

  • Per l'instradamento di argomenti, le prestazioni diminuiscono all'aumentare del numero di associazioni

  • scambi Fanout sono molto veloci perché non hanno di routing per elaborare ancora se legato ad un gran numero di code che cambia

  • scambi diretti sono una forma più veloce di scambi argomento, a condizione che non è necessario il jolly

  • Risoluzione dei problemi in tutto 100.000 le code potrebbero essere noioso rispetto a una topologia con più attacchi, un minor numero di scambi e code

  • un numero molto elevato di scambi e code occupano più di memoria che può essere significativo, ma questo in realtà dipende

A partire dal RabbitMQ 2.4.0, rilasciato 23 MARZO 2011, un nuovo algoritmo di ottimizzazione di routing argomento è disponibile che è 60 volte più veloce rispetto al picco l'algoritmo argomento precedente. A causa di ciò, una raccomandazione è di ridurre gli scambi e le code e più routing perché l'aumento di tempo è ora minimo

Problemi correlati