Ich habe Probleme mit einer Vor- und Nachteile-Liste für NServiceBus und MassTransit.
Jetzt weiß ich, dass es hier bereits einen Thread gibt, der meine Fragen jedoch nicht wirklich beantwortet.
Folgendes habe ich bisher gelesen:
- NServiceBus, ja, es ist lizenziert und nicht kostenlos.
- MassTransit, ja, es ist Open Source, aber die Dokumentation scheint etwas zu fehlen.
NServiceBus ist älter und hat mehr Referenzen. Es ist schwer, etwas über MassTransit zu finden, aber ich bin aufgeschlossen. Ich muss jedoch eine solide Lösung liefern, und deshalb muss ich fragen.
Also bitte jemanden mit Erfahrung mit beiden Frameworks. Warum sollte ich NServiceBus wählen? ODER Warum sollte ich MassTransit wählen?
Ist es Leistung, Sicherheit, Skalierbarkeit oder?
quelle
Als ursprünglicher Autor von NServiceBus bin ich wahrscheinlich ein bisschen voreingenommen gegenüber meiner eigenen Technologie, aber ich werde versuchen, dies so ausgewogen wie möglich zu halten.
Transportunterstützung
Sowohl NServiceBus als auch MassTransit unterstützen RabbitMQ und Azure Service Bus . NServiceBus unterstützt jedoch auch:
Zum Thema RabbitMQ
Es könnte argumentiert werden, dass NServiceBus RabbitMQ stärker unterstützt - zum Beispiel in seiner Funktionalität für verzögerte Zustellung, während Mass Transit angibt, dass das Plugin immer noch als experimentell angesehen wird. Es wird von MassTransit unterstützt, aber wir können nur das Plugin garantieren garantiert sich. "
Wir arbeiten auch sehr eng mit dem RabbitMQ-Team zusammen und tragen zum .net SDK zum Nutzen des gesamten Ökosystems bei.
Wenn es um Azure Service Bus geht
Die Zusammenarbeit mit dem Azure Service Bus-Team ist mit über 70 PRs im .net-Kern-SDK sogar noch höher .
Wenn Sie NServiceBus verwenden, profitieren Sie von der vollen Tiefe dieses Wissens.
Werkzeuge
Das ist der größte Unterschied.
Sobald Sie ein umfangreiches System aufgebaut haben, ist es sehr wichtig, einen Überblick darüber zu haben, wie die verschiedenen beweglichen Teile miteinander kommunizieren. MassTransit bietet in diesem Bereich nur eine kleine Integration über eine Diagnosequelle in Tools von Drittanbietern wie Application Insights oder Open Trace.
Die Service-Plattform rund um NServiceBus geht noch einen Schritt weiter und bietet Ihnen die Möglichkeit, mit ServiceInsight Sequenzdiagramme über alle Endpunkte hinweg anzuzeigen :
Sie können auch die logische Ansicht aller Ihrer Endpunkte und Nachrichten erhalten:
Im Wesentlichen erhalten Sie eine lebendige Dokumentation der Architektur Ihres Systems.
Management & Überwachung
Dies ist ein weiterer Bereich, in dem MassTransit nicht viel hat. Wenn ein System eines Drittanbieters, in das Sie integrieren, nicht mehr verfügbar ist und eine Reihe von Nachrichten in Ihrem System in der Fehlerwarteschlange landen, können Sie diese Nachrichten von MassTransit nur mithilfe des RabbitMQ Shovel-Plugins später manuell zurückschieben .
Die Service-Plattform rund um NServiceBus umfasst die Überwachung dieser Fehlerwarteschlange, grafische Tools, um die Ursachen dieser Fehler zu ermitteln, sowie die Möglichkeit, Gruppen dieser fehlgeschlagenen Nachrichten wiederzugeben und sicherzustellen, dass sie tatsächlich alle in einer einfachen Web-App erfolgreich verarbeitet wurden genannt ServicePulse .
Es gibt auch eine Visualisierung von Integritätsprüfungen, die regelmäßig ausgeführt werden und frühzeitig vor Problemen warnen können, bevor Nachrichten fehlschlagen.
Und schließlich gibt es die Leistungsüberwachung auf der Plattform:
Sie erhalten wirklich das volle Paket, wenn es um Produktionsunterstützung geht.
Langzeitunterstützung und Abwärtskompatibilität
Während die Leute von Mass Transit immer sehr gut darin waren, allen zu helfen, die Fragen zu Gitter oder ihrer Google-Gruppe haben , glaube ich nicht, dass sie Fehlerbehebungen für ältere Versionen anbieten. Wenn es Ihre Produktionssysteme schon seit ein paar Jahren gibt und Sie nicht immer alles aktualisieren können, wird dies immer wichtiger.
Mit NServiceBus umfasst die Unterstützung :
Beratung & Training
Aus Offline-Sicht gibt es weltweit öffentliche Kurse auf NServiceBus sowie viele Berater, die vor Ort hinzugezogen werden können, um ein Projekt zu starten oder bei Problemen zu helfen. Ich habe von mehreren Unternehmen gehört, die beschlossen haben, von MassTransit zu NServiceBus zu wechseln, weil sie nicht jemanden vor Ort haben konnten, wenn sie ihn brauchten.
Lizenzierung
Was einige Leute noch nicht über NServiceBus wissen, ist, dass es für den persönlichen Gebrauch und Startups KOSTENLOS ist .
Wenn es um die kommerzielle Nutzung geht , sind die Lizenzmodelle rund um NServiceBus sehr flexibel, wie das breite Kundenspektrum zeigt, und können für das Management gut gerechtfertigt werden. Mit MassTransit ist die Lizenzierung natürlich kostenlos.
Hoffe das hilft irgendwie.
quelle
Ich weiß, dass es spät ist, sich auf diese Frage einzulassen, aber um der Binglabilität willen muss ich Rebus erwähnen (dessen Hauptautor ich zufällig bin).
Rebus ist jetzt ungefähr 8 Jahre alt und wurde verwendet, um Geld zu bewegen und Kraftwerke von Anfang an zu steuern.
Es unterstützt die meisten grundlegenden Warteschlangensysteme wie MSMQ, RabbitMQ, Azure Service Bus, Azure-Speicherwarteschlangen, Amazon SQS usw., unterstützt aber auch witzigere Dinge wie die Verwendung von MSSQL, PostgreSQL und Oracle als Transportmittel.
Das Dokumentations-Wiki ist ziemlich umfangreich, obwohl viele Leute damit auszukommen scheinen, weil die APIs von Rebus so leicht zu entdecken sind.
Rebus war (und wird) immer völlig frei. Es ist MIT-lizenziert, so dass Sie im Grunde damit machen können, wie Sie sich fühlen.
Wenn Sie ein ernsthafter Rebus-Benutzer sind und eine formelle Supportvereinbarung und zusätzliche Tools benötigen, können Sie Rebus Pro abonnieren , das von Rebus FM (dem Unternehmen hinter Rebus) angeboten wird.
Das oben erwähnte "zusätzliche Werkzeug" kommt derzeit in Form eines Flottenmanagers , der bei Dingen helfen kann. Beispielsweise ersetzt Fleet Manager Fehlerwarteschlangen vollständig , sodass stattdessen fehlgeschlagene Nachrichten dort gespeichert werden. Dies bedeutet, dass fehlgeschlagene Nachrichten jederzeit mit wenigen Klicks im Flottenmanager angezeigt, verwaltet und wiederholt werden können.
quelle
Sie können jederzeit Shuttle (FOSS) verwenden: https://github.com/Shuttle/shuttle-esb :)
Dokumentation (wird ständig verbessert): http://shuttle.github.io/shuttle-esb/
Das Shuttle-Projekt hat fast 2 Jahre gedauert und verwendet Produktionssysteme. Es wird eine Frage der Wahl sein, was mit Ihnen in Resonanz steht.
NServiceBus hat eine gute Erfolgsbilanz. Ich habe es zuvor auf einem Produktionssystem (1.9) verwendet, aber nicht, seit es kommerziell wurde (der Punkt, an dem ich mit Shuttle angefangen habe).
Ich habe MassTransit nicht ausprobiert.
Ich denke, alle Ihre Optionen haben die Grundlagen (Befehl / Ereignis / Pub-Sub). NServiceBus hat jedoch Sagen und Datenbusmaterial, obwohl es meiner Meinung nach einfach genug ist, Daten außerhalb des Servicebusses selbst zu verarbeiten, z. B. in Ihren Endpunktnachrichten-Handlern. Ich weiß nicht, ob MassTransit Sagen / Datenbus hat, aber Shuttle sicherlich nicht.
Eine weitere Überlegung ist wahrscheinlich, wie Sie den Servicebus nutzen möchten. Wenn es Teil eines Produkts sein soll, müssen Sie für eine kommerzielle Option wie NServiceBus die Kostenauswirkungen für Benutzer Ihres Produkts berücksichtigen, und obwohl dies immer noch für die Eigenentwicklung berücksichtigt werden muss, kann dies durchaus der Fall sein gerechtfertigt.
quelle
Um eine aktuellere Antwort zu geben, habe ich mich professionell mit beiden Ökosystemen entwickelt und beide unterstützen jetzt eine breite Palette von MQ-Technologien und .NET Core.
Ich habe NServicebus vor einigen Jahren für ein neues Cloud-Produkt verwendet. Wir brauchten .NET Core, das Mass Transit zu diesem Zeitpunkt nicht unterstützte. Ich muss sagen - es ist eine schöne Sache, als Entwickler zu arbeiten, es gibt viele nette Einzeiler, großartige Werkzeuge / Überwachung und die Dokumentation ist wirklich gut.
Es stehen verschiedene Support- und Lizenzstufen zur Verfügung, und einmal brauchten wir Hilfe, es war von guter Qualität.
Ich benutze Mass Transit seit einigen Monaten in einem neuen Unternehmen, und sie bevorzugen eine kostenlose Open-Source-Bibliothek. Die Reise war etwas rockiger - die Dokumentation für MT fehlt stellenweise und viele Beispiele / Probleme sind veraltet. Es gibt auch nicht ganz die Palette der erweiterten Funktionen, aber Sie benötigen sie möglicherweise nicht für ihren Anwendungsfall.
Es funktioniert jedoch einwandfrei und die MT-Entwickler scheinen viel Mühe in die Unterstützung ihres OSS zu stecken - weit über das hinaus, was Sie vernünftigerweise erwarten können.
Mein TLDR wäre also: Holen Sie sich NServicebus, wenn Ihr Unternehmen davon überzeugt sein kann, dafür zu zahlen, aber MT ist eine brauchbare Alternative und das Beste, was Sie kostenlos bekommen können.
quelle