2012-07-06 10 views
8

enter image description hereCome implementare modello single-consumer-multi-coda per RabbitMQ

ho trovato questa immagine è molto simile al mio modello bussiness. Devo dividere il messaggio in qualche coda. per lavori pesanti. Posso aggiungere più thread di lavoro per loro. Ma per alcuni non è un lavoro molto pesante. Posso lasciare che il singolo utente iscriva il loro messaggio. Ma come farlo in rabbitMQ. Attraverso il loro documento. Ho appena trovato il modello single-queue-multi-consumer.

+0

Consulta le esercitazioni [Getting Started] (http://www.rabbitmq.com/getstarted.html). Quando ho guardato per la prima volta RabbitMQ, ho trovato i loro tutorial e mi hanno aiutato a essere davvero bravo. In particolare, controlla la sezione [Argomenti] (http://www.rabbitmq.com/tutorials/tutorial-five-python.html), ad esempio puoi sottoscrivere più code in base a una chiave di routing. – AdaTheDev

risposta

1
  1. È possibile aggiungere più lavoratori a una coda
  2. Non ci può essere più code legati ad uno scambio.

In RabbitMQ, il produttore invia sempre il messaggio a uno scambio. Quindi, nel tuo caso, spero che solo uno scambio sia sufficiente. Se si desidera bilanciare il carico dal lato del consumatore, si dispone delle suddette due opzioni.

È possibile anche leggere il mio articolo: https://techietweak.wordpress.com/2015/08/14/rabbitmq-a-cloud-based-message-oriented-middleware/

0

RabbitMQ ha un modello molto flessibile, che consente una vasta gamma di scenari di routing a prendere posto.

  1. Ho bisogno di dividere il messaggio in qualche coda. per qualche lavoro pesante. Posso aggiungere più thread di lavoro per loro.

Sì, questo è supportato tramite uno scambio diretto. Pubblica un messaggio utilizzando una chiave di routing uguale al nome della coda. Per praticità, supponiamo di utilizzare il nome dell'oggetto completo (ad esempio MyApp.Objects.DataTypeOne). Tutto ciò che devi fare è sottoscrivere più processi di consumo in questa coda e RabbitMQ eseguirà il bilanciamento del carico utilizzando un approccio round-robin.

  1. Ma per alcuni non molto lavoro pesante. Posso lasciare che il singolo consumatore iscriva il loro messaggio.

Sì, lo puoi fare anche tu. Lo stesso processo del paragrafo precedente. Basta non collegare più processi di consumo.

Ho trovato questa immagine è molto simile al mio modello di business.

Il diagramma non è molto utile, in quanto manca di informazioni sul tipo di messaggi pubblicati. In questo senso, è solo un diagramma di interconnessione. Le linee interessanti sono quelle che collegano le code allo scambio, in quanto è ciò che specifichi all'interno di RabbitMQ tramite Queue Bindings. Puoi anche collegare gli scambi tra loro, ma è un po 'più lontano di quello che probabilmente dovremmo fare.

Tutto il resto del diagramma è completamente sotto il tuo controllo come utente del sistema RabbitMQ/AMQP. È possibile creare un numero arbitrario di editori e disporre di un numero arbitrario di processi di consumo che consumano ciascuno da un numero arbitrario di code. Non ci sono limiti duri e veloci, anche se ci sono alcuni aspetti pratici che probabilmente vorrai pensare per garantire che il tuo sistema sia manutenibile.

Problemi correlati