Frage

Ich arbeite an einer messaging/notification-system für unsere Produkte.Grundlegende Anforderungen sind:

  • Feuer-und-vergessen
  • Persistente Nachrichten, die möglicherweise aktualisieren, um dort zu bleiben, bis der Absender sagt, um Sie zu entfernen

Die Bibliotheken werden in C#geschrieben.Spring.NET gerade veröffentlicht-ein Meilenstein bauen mit vielen schönen messaging-Abstraktion, das ist toll - ich-plan auf mit es ausgiebig.Meine grundlegende Frage, kommt es auf die Frage der message-Broker.Meine Architektur wird Aussehen wie app -> message-broker-Warteschlange -> server-app, die hört, versendet alle Nachrichten, wohin Sie gehen müssen, und behandelt den Lebenszyklus dieser langlebige Nachrichten -> message-broker-Warteschlange oder Thema -> hören-apps.

Zum Schluss die Frage:Die message-broker sollte ich verwenden?Ich bin voreingenommen gegenüber ActiveMQ - Wir haben es bei unserem letzten Projekt und es geliebt.Ich kann nicht wirklich denken, einen einzigen Schlag gegen ihn, außer, dass es Java und erfordert java installiert werden auf einem server irgendwo, und das kann schwer zu verkaufen, um einige der Menschen, die mit diesem service.Die andere option, die ich gesucht habe, ist MSMQ -.Ich bin voreingenommen gegen Sie, für einige unbekannte Grund, und es scheint auch nicht haben große multicast-Unterstützung.

Hat jemand verwendet MSMQ für so etwas?Irgendwelche vor-oder Nachteile, Sachen, die vielleicht schwanken, die Stimmen der einen oder anderen Art?

Eine Letzte Sache, die wir verwenden .NET 2.0.

War es hilfreich?

Lösung

Ich bin ein bisschen voreingenommen, da ich die Arbeit auf ActiveMQ aber so ziemlich alle aufgeführten Leistungen für MSMQ gelten auch bei ActiveMQ wirklich.

Einige weitere Vorteile von ActiveMQ gehören

Die wichtigsten Nachteil das Sie erwähnen, ist, dass der ActiveMQ-broker in Java geschrieben ist;aber Sie können es auf IKVM als .net-assembly, wenn Sie wirklich wollen, - oder als ein windows-Dienst, oder kompilieren Sie es, um ein DLL/EXE-Datei über GCJ.MSMQ kann oder kann nicht geschrieben werden .NETZ - aber ist es eigentlich egal, wie viel seine umgesetzt werden?

Unabhängig davon, ob Sie MSMQ oder ActiveMQ ich würde empfehlen, zumindest in Betracht ziehen, den NMS-API die, wie Sie sagen, ist die integrierte große in Spring.NET.Es ist eine MSMQ-Implementierung dieser API-Implementierungen für TibCo, STOMP ActiveMQ und die Unterstützung andere JMS-provider über StompConnect.

So durch die Wahl NMS, wie Sie Ihren API-vermeiden Sie lockin an firmeneigenen Technologie - und Sie können leicht Schalter messaging-Anbieter an jedem beliebigen Punkt in der Zeit;anstatt sperren Sie Ihren code in eine proprietäre API

Andere Tipps

Vorteile für MSMQ.

  • Es ist in Windows integriert
  • Es Transaktionen unterstützt, unterstützt es auch die Warteschlangen mit keine Transaktionen
  • Es ist wirklich einfach zu setup
  • AD-Integration
  • Es ist schnell, aber würden Sie brauchen, um zu vergleichen, ActiveMQ und MSMQ für Ihren traffic zu wissen, welche schneller ist.
  • .NET, es unterstützt Geburt
  • Unterstützt die Feuer-und-vergessen
  • Sie können den Blick auf die Warteschlange, wenn Sie haben Leser, die einfach mal schauen.nicht sicher, ob Sie können, Bearbeiten Sie eine Nachricht in der Warteschlange.

Nachteile:

  • 4MB Nachrichtengröße
  • 2GB Queue size limit
  • Queue-Objekte gehalten werden, auf der Festplatte
  • Kein mainstream-MS-Produkt, docs sind ein bisschen zweifelhaft, oder Sie wurden es wurde ein paar Jahre her, seit ich es benutzt habe.

Hier ist ein guter blog für MSMQ

Werfen Sie einen Blick auf zeromq.Es ist eine der schnellsten Nachrichten-queues um.

Ich schlage vor, Sie schauen TIBCO Enterprise Messaging Service - EMS, die ist ein high-performance-messaging-Produkt unterstützt das multicasting, routing, unterstützt die JMS-Spezifikation und bietet unternehmensweite Funktionen, einschließlich Ihre Anforderungen wie Feuer-vergessen-und-Nachricht-Persistenz mit Datei/Datenbank mit gemeinsam genutzten Zustand.

Als Referenz, FEDEX läuft auf TIBCO EMS als seine messaging-Infrastruktur.

http://www.tibco.com/software/messaging/enterprise_messaging_service/default.jsp

Es gibt viele andere Referenzen, wenn ich, Sie würde wirklich überrascht sein.

Es gibt so viele Möglichkeiten in dieser arena...

Gratis:MantaRay ein peer-to-peer-komplett JMS-konforme system.Der interessante Teil Mantaray ist, dass Sie brauchen nur zu bestimmen, wo die Meldung geht und MantaRay Strecken gibt es sowieso, dass Ihre Nachricht an es ist detination - so ist es resistenter gegen Ausfälle von einzelnen Knoten in Ihrer messaging-Stoff.

Bezahlt:In my day job, den ich verwalten ein IBM WebSphere MQ-messaging-system mit mehreren hundert Knoten und fanden es sehr gut.Wir haben auch vor kurzem gekauft Tibco EMS, und es scheint, dass es ziemlich schön zu verwenden als gut.

Paul/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top