Frage

Wenn Sie verwenden möchten queuing Produkt langlebig messaging unter Windows läuft .NET 2.0 und darüber, welche alternativen zu MSMQ existieren heute?Ich weiß von ActiveMQ (http://activemq.apache.org/), und ich habe gesehen, Verweise auf WSMQ (verweist auf http://wsmq.net), aber die Seite scheint down zu sein.

Gibt es andere alternativen?

War es hilfreich?

Lösung

Ich kann nicht anfangen zu sagen, genug gute Dinge über Tibco EMS - eine Implementierung der Java-JMS-messaging-spec.Tibco EMS hat hervorragende Unterstützung für .NET-clients - einschließlich der Kompakte Rahmen .NET auf WinCE.(Sie haben auch die C-client-Bibliotheken zu.)

Also, wenn Sie sind Gebäude eine heterogene, verteilte Anwendung mit messaging-code läuft auf Windows -, Unix (AIX/Solaris), Linux oder Mac OS X, dann Tibco EMS ist das ticket.

Schauen Sie sich meinen Artikel hier:

Mithilfe von JMS Für Verteilte Software-Entwicklung

Ich verwendet, um arbeiten bei Microsoft und hat einige Umsetzung mit MSMQ, während es.Aber wissen Sie, Microsoft gerade beschäftigt sich mit Windows.Sie hing am 3. Parteien MSMQ-clients für andere Plattformen.Meine Begegnung mit Tibco EMS war eine viel bessere Erfahrung.Es war sehr offensichtlich, dass Tibco verstanden messaging-viel mehr als Microsoft.Und Tibco setzen Sie den Aufwand in die Unterstützung von verschiedenen client-Bindungen.Das ist, warum Sie irgendwann änderte sich der name des Produkts von Tibco JMS-Tibco EMS (Enterprise Messaging Service).

Und ich baute heterogene software-Systeme um Tibco EMS.Gerollt C# .NET Winform Kunden die Interaktion mit Java/JBoss-middle-tier-via Tibco EMS-messaging.(Und auch WinCE industriellen embedded Computer, auf dem das Compact Framework .NET Tibco-client.)

Links Zu Meinen JMS-Schriften

Andere Tipps

Kann nicht sein "best practice" - Hinweise hier...aber basierend auf realen Bedürfnisse und Erfahrungen:wir haben verteiltes system, 60 Boxen laufen jeweils 10 clients-Aufgabe X, und Sie müssen, nehmen Sie die nächste Aufgabe aus der Warteschlange.Die Warteschlange wird gefüttert von einem anderen "client"...

Wir verwendet hatten, inter-Prozess-Kommunikation, die wir verwendet, MSMQ, versuchten wir, die service broker -...Es funktioniert einfach nicht, in der langen Begriff, denn Sie sind Weg geben, der Kontrolle Ihrer Anwendung an Microsoft.Es funktioniert sehr gut, solange Ihre Bedürfnisse erfüllt sind.es wird die Hölle, wenn Sie etwas brauchen nicht unterstützt.

Die beste Lösung für uns war:Verwenden Sie ein SQL-Datenbank-Tabelle als der Warteschlange.Das Rad nicht neu erfinden, denn Sie werden Fehler machen (sperren).Gibt es Infos gibt, wie es zu tun, es ist sehr einfach und wir behandelt über 200 Nachrichten pro 24H (mit 60x10 = 600 gleichzeitige lese-und Schreibzugriffe auf die Warteschlange).Das ist zusätzlich zu dem gleichen SQL server-Umgang mit dem rest der Anwendung Zeug...

Einige Gründe, warum MSMQ funktioniert nicht:

  1. Wenn Sie ändern müssen die Logik der Warteschlange, um kein FIFO, sondern so etwas wie "die älteste RED Nachricht" oder "der älteste BLUE Meldung" Sie können nicht tun es.(Ich weiß, was die Leute sagen, Sie können es tun, indem er eine red Warteschlange und eine blue queue...Aber was ist, wenn die Anzahl/Typen von Warteschlangen ist dynamisch basierend auf der Art der Anwendung verwaltet und ändert sich täglich?)

  2. Es fügt einen Punkt des Scheiterns und die Bereitstellung nightmare (die Warteschlange ist ein point-of-failure und Sie benötigen, um mit der Einstellung der richtigen Berechtigungen auf alle Boxen zu Lesen/schreiben Nachrichten, etc' in Enterprise software, Sie zahlen im Blut für diese Art von Sachen ist).SQL server...alle clients sind im schreiben/Lesen, die bereits von der DB, es ist einfach nur eine Tabelle..

Die RabbitMQ-framework scheint übersehen worden hier.Wenn Leute noch Sorge, es ist eine .NET 2.0 code-Basis und kommt mit einem WCF-Bindung ähnlich netMsmqBinding.Die Bindung erfordert natürlich mindestens .NET 3.0 und es hat mehr Funktionen als die integrierten netMsmqBinding.Am Anfang von allem, es ist Mono-freundliche.Its worth a look.

Was ist SQL 2005 service broker?

Warum nicht ActiveMQ?:)

Wenn die Kosten nicht ein Problem (es gibt auch eine Express-SKU), dann werfen Sie einen Blick auf die 800.000-Pfund-gorilla.WebSphere MQ (MQ Series).Es läuft auf fast jeder Plattform und unterstützt so viele unterschiedliche queue Manager und messaging-Muster, es ist nicht wirklich angemessen, Sie alle hier aufzuführen.

Wenn eine hohe Verfügbarkeit wichtig ist Amazon SQS ist einen Blick Wert.Es gibt nicht viel zusätzlichen Aufwand, wenn Meldungen kommen von verschiedenen Standorten.Billig und skalierbare!

Redis ist ein weiterer hot-Rasse, die auf dieser Plattform.Überprüfen Sie mit Ihrem Set based queueing Umsetzung und auch Pub/Sub-Muster.Es sieht promosing

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