2009-10-21 16 views
103

Basta fare qualche rapido aumento nell'eventualità di utilizzare un sistema di messaggistica per elaborare file che si trovano in un sistema di flusso di lavoro ben disaccoppiato.nServiceBus vs Mass Transit vs Rhino Service Bus vs altro?

Quali sono i pro e i contro che le persone hanno trovato nell'usare ciascuno dei suddetti framework? Quali sono i vantaggi dell'utilizzo di questi sistemi rispetto a un sistema MSMQ laminato a mano con i collegamenti WCF e/o soluzioni non MSMQ ??

risposta

71

Suggerirei di stare lontano dalle soluzioni laminate a mano in quanto vi è un mucchio di cose un po 'difficili che devono essere ottenute correttamente - come il modo in cui le transazioni vengono gestite, come le eccezioni causano i rollback, come smettere di tornare indietro all'infinito (messaggi velenosi), come integrarsi con i flussi di lavoro a lungo termine in modo che i limiti di gestione dello stato siano allineati e altro ancora.

Probabilmente vorrai una sorta di infrastruttura di messaggistica duratura/transazionale, quindi non utilizzando MSMQ verrai lasciato con Service Broker sulla piattaforma Microsoft o qualche altra alternativa come ActiveMQ. MSMQ ha il vantaggio di essere già installato su tutte le macchine Windows, al contrario di Service Broker che non lo è.

In termini di scelta tra NServiceBus, Mass Transit e Rhino Service Bus, può essere definito come il gusto che preferisci, anche se NServiceBus è stato il più lungo ed è probabilmente il più stabile.

Nella nostra versione 3.1, stiamo introducendo NSB Studio - un set di strumenti di modellazione integrati di Visual Studio che consentono di modellare il sistema a un livello più alto di astrazione e di eseguire gran parte della configurazione e inizializzazione di NServiceBus per automaticamente Direi che questo punta davvero le scale a favore di NServiceBus.

Spero che questo aiuti.

Disclaimer: Sono l'autore di NServiceBus.

+0

Puoi approfondire "che tipo di gusto preferisci" significa? Quali sono alcune delle differenze più evidenti tra il tuo nServiceBus e le altre soluzioni (oltre ad essere le più vecchie e stabili)? – mwjackson

+25

Rhino Service Bus è molto incentrato sul Castello. Se non sei familiare/a tuo agio con Castle come parte fondamentale dell'architettura dell'applicazione, potresti avere qualche difficoltà con esso. NServiceBus e Mass Transit o più container agnostici. NServiceBus viene fornito con un "application server" che gestisce l'hosting del codice e la modifica delle implementazioni dell'infrastruttura attiva (come in-memory, MSMQ e DB) durante la transizione del sistema da dev a test a prod. Inoltre è dotato di funzionalità di test dell'unità per la logica di gestione dei messaggi e processi di lunga durata. Non credo che MassTransit abbia questi. –

+0

Cool, grazie Udi! – mwjackson

9

un potenziale cono di qualsiasi MSMQ basato è la restrizione sulla dimensione massima del messaggio. IIRC è di circa 4 MB, che potresti facilmente incontrare se hai a che fare con file di grandi dimensioni e memorizzi il contenuto del file all'interno del messaggio.

+7

È interessante notare che la maggior parte delle code basate su cloud non supporta nemmeno payload di 100 KB, quindi questo è qualcosa che dovrà essere preso in considerazione da molte app in futuro. –

+32

In Enterprise Integration Patterns (Woolf, Hohpe), il modello di verifica dei reclami risolve specificamente questo problema. Un riferimento al grande carico utile viene mantenuto solo nel messaggio, mantenendo il messaggio piccolo. Le dimensioni dei messaggi di grandi dimensioni possono devastare il throughput di un sistema di messaggistica. –

+4

Questo non è un problema con NServiceBus poiché hanno un concetto di bus dati, che funziona in modo trasparente intorno alle limitazioni di dimensione. –

50

NServiceBus è un buon prodotto ma attenzione ai problemi di licenza. Ha la tendenza a cambiare la politica di licenza come gli autori desiderano. Date un'occhiata per esempio a old license information.

Potrebbe accadere che nel bel mezzo del vostro sviluppo del progetto scoprirete che dovete pagare molto per NServiceBus.

Anche la versione gratuita presenta limiti di prestazioni.

MassTransit è assolutamente open source gratuito, non ha limitazioni ed è sotto licenza Apache 2.0.

Non ho usato Rhino Service Bus.

+1

Attualmente forniremo una nuova licenza con la versione 3.1 che consentirà di eseguirla su più macchine gratuitamente (anche se a livelli inferiori di velocità effettiva). –

+11

MassTransit è il tuo uomo. È gratis; nessuna restrizione di licenza.Se riesci a fare a meno di un designer di flusso e puoi girare a mano da solo, non puoi batterlo. Può anche sedersi sopra RabbitMQ e MSMQ ha plugin Azure della comunità. MassTranit + RabbitMQ ha dimostrato di essere un eccellente ambiente stabile e molto rapidamente consente di far funzionare i tuoi consumatori/produttori. – Bigtoe

+3

Considera anche EasyNetQ (semplice wrapper attorno a rabbitMQ) UDI superata non pesa più sulle discussioni con i suggerimenti 4 buone alternative 2 nServiceBus? Ciò che intendo. aiutare le persone nel viaggio di messaggistica nelle fasi iniziali. Ci sono molti buoni modi (gratuiti) 2 per iniziare; non importa cosa usi purché sia ​​facile e idealmente gratuito; (libero di giocare, e libero di implementare per davvero, e libero di cambiare anche dopo) Una volta che stai crescendo svilupperai la tua lista di preoccupazioni; a quel punto un prodotto più maturo può essere una decisione facile, con semplici costi di produzione, ad es. NServiceBus. – snowcode

25

Un aggiornamento allo stato di Rhino vs NServiceBus:

http://www.infoq.com/news/2012/04/nservicebus3-0

InfoQ a Ayende:Hai già scritto un bus di servizio per .NET te stesso, vale a dire la Rhino Bus Service .Gli utenti di Rhino Service devono ora riconsiderare e passare a NServiceBus?

Ayende: ho costruito Rhino Service Bus intorno al 2008. Ho costruito per lo più perché non ero felice con lo stato degli altri autobus di servizio al momento. Ho avuto preoccupazioni e indicazioni diverse quando ho creato il mio bus di servizio , ma era 4 anni fa. In quel momento, penso che lo NServiceBus abbia fatto passi da gigante nel diventare un prodotto più facile da usare e che abbia una storia di sviluppo molto migliore. Se fossi il che inizia oggi con gli autobus di servizio, dubito fortemente che mi piacerebbe che io costruisca il mio edificio con il numero .