2012-01-31 25 views
11

Come esercizio sto cercando di trovare un esempio che attui un consumatore in competizione.Come implementare una soluzione consumer competitiva?

molti produttori -> MSMQueue < - concorrenti consumatori

Finora non ho trovato alcuna documentazione su come raggiungere questo obiettivo. Il mio primo tentativo di capire come viene implementato in MassTransit o NServiceBus non è riuscito a molti livelli di riferimento indiretto.

Qualsiasi aiuto sarà molto apprezzato.

risposta

13

Con MassTransit e MSMQ è possibile ottenere questo utilizzando il componente Distributor.

Si noti che se si utilizza MassTransit con RabbitMQ invece di MSMQ, è possibile implementare una competizione scenario consumatore senza utilizzando il Distributore, semplicemente impostando lo stesso nome della coda per tutti i consumatori. Se è possibile scegliere tra MSMQ e RabbitMQ, scegliere RabbitMQ, poiché si ottengono migliori strumenti di gestione e crittografia SSL e funziona bene anche con i firewall.

C'è qualche discussione su questo su MassTransit Google Groups forum.

+4

Come il tizio che ha scritto il distributore, ho usato invece RabbitMQ. Tramite il distributore pompiamo 10 milioni di milioni di messaggi al giorno, ma RabbitMQ rende tutto questo molto più semplice. Non è possibile utilizzare la stessa coda per leggere da MSMQ, ogni utente ha bisogno della propria coda ma il componente distributore si occupa di distribuire un carico di lavoro. – Travis

+0

Grazie, darò un'occhiata a RabbitMQ. Travis quali sono i meccanismi del distributore? Funziona come 1 utente singolo nella coda di input e i lavori vengono gestiti dalla disponibilità dei lavoratori mediante la coda di controllo? – ruslander

+0

@ruslander: corretto, questo è essenzialmente il modo in cui funziona il distributore. –