.net Service Bus Empfehlungen? [geschlossen]

73

Wir benötigen ein Messaging-System / einen Service-Bus mit verteilter Architektur mit der Fähigkeit zum Veröffentlichen / Abonnieren. Hat jemand Empfehlungen für ein Framework, das wir für .net-Anwendungen verwenden können?

Chris Kooken
quelle
17
Solche Fragen sind sehr konstruktiv. Diese Frage steht ganz oben in der Google-Suche und ist sehr nützlich. Das gleiche gilt für meine Frage zu UML stackoverflow.com/q/6877121/377133
Sergey Metlov
4
Das ist nicht konstruktiv? Das kann doch nicht wahr sein. Ich sage, diese Frage ist sehr konstruktiv. Beste Ressource für diese Art von Frage.
Kheya
2
@kheya Diese Art von Fragen wurde aus einer Vielzahl von Gründen als nicht konstruktiv eingestuft (Spam-Potenzial und wie schnell diese Tools veraltet sind). Hier ist eine Antwort auf Meta, die das erklärt, und ich bin sicher, dass es noch mehr gibt: meta.stackoverflow.com/a/251135/1195056
krillgar
1
Am Ende wurden Softwareempfehlungen erstellt , um diese zu behandeln.
ivan_pozdeev
Bitte öffnen Sie die Frage erneut. Es hat einen sehr hohen Stellenwert bei der Google-Suche und muss diskutiert werden.
Jonas_Hess

Antworten:

26

NServiceBus erfreut sich wachsender Beliebtheit. Es ist auch Open Source. Hier ist eine Hanselminutes-Episode mit Scott Hanselman, der mit Udi Dahan über NServiceBus spricht, um das Problem zu lösen. Sie sollten es auf jeden Fall bewerten.

UPDATE: Es gibt auch eine DNR-TV-Episode, die zeigt, wie es ist, eine NServiceBus-Lösung von Grund auf neu zu erstellen: http://www.dnrtv.com/default.aspx?showNum=199

Dale Ragan
quelle
42
Obwohl es sich um Open Source handelt, sollten Sie sich die Lizenzierung ansehen. Nur einige Anwendungsfälle sind kostenlos. In anderen Fällen benötigen Sie möglicherweise eine kommerzielle Lizenz, die kostenpflichtig ist.
Manfred
4
Sie möchten wahrscheinlich vermeiden, jemals den nServiceBus-Quellcode herunterzuladen, da der Quellcode (nach Version 2.0) nicht mit einer Open-Source-Lizenz (zumindest keine übliche) gewährt wird. Wenn Sie also über den Quellcode verfügen, befinden Sie sich möglicherweise in einem trüben Rechtsgebiet. Wenn Sie ein kleiner Webshop sind, ist dies wahrscheinlich kein wirkliches Problem. Wenn Sie jedoch ein Fortune 500-Unternehmen mit tiefen Taschen sind, ...
Eric J.
1
Um einige der Kommentare zu verdeutlichen, verwendet NServiceBus eine gegenseitige Lizenz. Grundsätzlich bedeutet dies, dass Sie alles, mit dem Sie NServiceBus verwenden, als Open Source-Version verwenden müssen. Wenn das bei Ihnen nicht funktioniert, müssen Sie es kaufen.
Vaccano
22

Schauen Sie sich auch den Masstransit- und Rhino-Servicebus an . Sowohl Open Source als auch von sehr klugen Leuten geschrieben.

Andrew Jones
quelle
6

Schauen Sie sich RabbitMQ an . Der .NET-Client ist voll funktionsfähig und recht einfach zu bedienen. Es gibt ein Buch namens RabbitMQ in Aktion sowie RabbitMQ in Depth , das in frühen Zugriffsausgaben verfügbar ist.

TrueWill
quelle
Ist RabbitMQ nicht nur eine Open Source-Nachrichtenwarteschlange? Ich glaube nicht, dass es an sich ein Service-Bus-Framework ist.
gabe
Technisch gesehen ist es ein Nachrichtenbroker. Wenn es die Anforderungen für ein Projekt erfüllt, interessiert es Sie, wie die Leute es kategorisieren?
TrueWill
3
Zu wissen, dass es eher ein Makler ist, ist hilfreich, danke! Ich interessiere mich nicht für die Begriffe, sondern für den Versuch, mein Gehirn um die Unterschiede zwischen diesen Technikern zu wickeln (da dies etwas die Natur dieses Q / A ist). Ich erinnerte mich an diesen interessanten Beitrag über einige der Unterschiede zwischen Maklern und Bussen: udidahan.com/2011/03/24/bus-and-broker-pubsub-differences .
gabe
3

Ich arbeite derzeit an einem Open Source WCF-basierten Servicebus. Sie finden es hier: http://rockbus.codeplex.com/ . Es unterstützt dynamische Abonnements (zur Laufzeit), Abonnement-Repository (Datenbank), steckbare Transporte, XPath-basiertes inhaltsbasiertes Routing, Transaktionsbereitstellung über wcf-Protokolle, Roundrobin-Zustellung, steckbare Abonnementbewertung und vieles mehr. Guck mal!

Bram
quelle
3

Ich fand, dass ActiveMQ, das in Apache NMS integriert ist , unglaublich einfach zu verstehen, einzurichten und transparent ist.

ActiveMQ verfügt beispielsweise über ein Web-Frontend, mit dem Sie mithilfe eines Webbrowsers Nachrichtenwarteschlangen durchsuchen und Nachrichten lesen, löschen und sogar erstellen können. So können Sie ganz einfach nur eine Seite Ihrer verteilten Anwendung entwickeln und testen, und das Debuggen und Überwachen ist sehr einfach.

realMarkusSchmidt
quelle
3
NServiceBus kann ab Version 4.0 unter ActiveMQ (unter anderem in Warteschlangen) ausgeführt werden und bietet Ihnen das Beste aus beiden Welten.
Udi Dahan
2

Ich habe festgestellt, dass Neuron ESB eine solide Implementierung ist, obwohl ich es noch nicht im Zorn verwendet habe.

Duncan
quelle
2

Bisher gibt es keine ausgereifte Service Bus-Implementierung im .NET-Stack. Microsoft entwickelt derzeit eine.

http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx

Optional können Sie eine aus der Java-Welt verwenden. Zum Beispiel TIBCO - sie haben ziemlich robuste .NET-Clients verfügbar oder OpenMQ.

Wenn Sie nicht viele Funktionen benötigen und bereit sind, Ihr eigenes System zu entwickeln, verwenden Sie hierfür WCF. WCF-Rückrufe sind dafür gut geeignet.

Vitaliy Liptchinsky
quelle
16
Ich denke, Sie verwechseln ESB mit Messaging. Tibco und OpenMQ sind Nachrichtenwarteschlangen. Sie stellen einfach den Transportmechanismus bereit. Nichts mehr. Informationen zu .NET Service Bus-Implementierungen: Sie haben mehr oder weniger Recht, obwohl NServicebus einem ausgereiften Produkt ziemlich nahe kommt und die Anstrengungen dazu da zu sein scheinen. Und als jemand, der teilweise mehrere Lösungen mit WCF als Servicebus erstellt: Nein. WCF ist dafür nicht geeignet. Pub / Sub in WCF ist gelinde gesagt eine Pita und erfordert ein tiefes Eintauchen in WCF und seine Architektur, um nur herauszufinden, dass es nicht dafür gedacht ist.
Noctris
IMHO nicht wahr. Neuron ESB ist stabil und ausgereift - und basiert auf Microsoft-Technologie (.NET inkl. WCF / MSMQ usw.)
2.