2010-10-18 14 views
6

Ich habe eine Anwendung, die aus drei Teilen besteht:MSMQ vs. SQL Server Service Broker

  • ein Front-End-Web-Shop für Endkunden und Geschäftspartner
  • ein Ordnungs-Management-System diejenigen zu handhaben Bestellungen
  • ein technisches Datenbanksystem all technischen Details dieser Produkte und Dienstleistungen
  • bestellt zu handhaben

heute jene Systeme (die auf separaten Servern sind und durch getrennte t entwickelt eams) interoperieren mit WCF-Webservices.

Diese Einrichtung funktioniert einwandfrei - solange alle Server aktiv sind. Was sie nicht sind - nicht immer, sowieso.

Also habe ich angefangen, MSMQ oder SQL Server Service Broker zu verwenden, um die Kommunikation zwischen diesen Systemen zu handhaben - zumindest wenn es darum geht, dass der Webshop einen Auftrag in das Auftragsverwaltungssystem oder Auftragsverwaltungssystem speichert Senden der technischen Daten an das technische Datenbanksystem.

Ich hoffe, mehr Zuverlässigkeit im gesamten System zu erreichen - Benutzer können immer noch Bestellungen aufgeben und diese werden nicht verloren gehen, auch wenn das Auftragsmanagement-Backend vorübergehend nicht verfügbar ist.

Aber die große Frage ist: MSMQ oder Service Broker? Alle drei Systeme sind Windows- und .NET-basiert und verwenden bereits SQL Server - auf drei separaten Servern.

Hat jemand einige solide Fakten, die für (oder gegen) eine dieser beiden Technologien sprechen? Was sind Ihre realen Erfahrungen mit diesen beiden Technologien? Vor-und Nachteile. Wenn du von vorne anfangen könntest - welchen würdest du wählen? Oder würdest du etwas anderes (was?) Komplett auswählen?

Antwort

5

Ich habe beide, in verschiedenen Situationen, gleichermaßen gut verwendet. Meine Präferenz ist wirklich ziemlich einfach: Verwenden Sie SQL Service Broker, wenn das Nachrichtensendeereignis von einem Datenbankereignis ausgelöst wird; Verwenden Sie die Nachrichtenwarteschlange, wenn das Ereignis im Code ist. Diese Präferenz basiert nur darauf, dass es einfacher ist, sich auf derselben Plattform einzurichten, die das Ereignis auslösen wird.

+0

OK, danke für diese Einsichten! –

Verwandte Themen