Sollte ich MSMQ oder SQL Service Broker für Transaktionen verwenden?
Wurde ich gefragt, von meinem team-leader zu untersuchen, MSMQ, als option für die neue version unseres Produktes. Wir verwenden SQL Service Broker in unserer aktuellen version. Ich habe meinen Gerechten Anteil an Experimentieren und Googeln, um herauszufinden, welches Produkt ist besser für meine Bedürfnisse, aber ich dachte, ich würde bitten, die beste Seite die ich kenne für die Programmierung Antworten.
Einige details:
- Unser Kunde ist .NET 1.1 und 2.0-code; das ist, wo die Nachricht gesendet werden soll.
- Die Gegner in einer Instanz von SQL Server 2005. Alle Nachrichten, die am Ende als Datenbank-updates oder inserts.
- Senden wir mehrere updates, die behandelt werden muss als eine Transaktion.
- Wir haben die perfekte Nachricht Wiederherstellbarkeit; keine Nachrichten verloren gehen können.
- Wir werden asynchron und in der Lage zu akzeptieren Nachrichten, auch wenn die Ziel-SQL-server ist down.
- Die Entwicklung unserer eigenen queuing-Lösung ist keine option; wir sind ein kleines team.
Dinge, die ich entdeckt habe bisher:
- Beide MSMQ und SQL Service Broker den job tun können.
- Es scheint, dass service broker ist schneller für Transaktions-E-Mails.
- Service Broker erfordert einen SQL-server laufen irgendwo, in der Erwägung, dass MSMQ Bedürfnisse konfigurierte Windows-Maschine läuft irgendwo.
- MSMQ scheint besser/schneller/einfacher zu set-up/run-in-Cluster.
Bin ich etwas fehlt? Gibt es einen klaren Sieger hier? Alle Gedanken, Erfahrungen, oder links wären sehr geschätzt. Danke!
EDIT: Wir landeten kleben mit service broker-denn wir haben eine benutzerdefinierte DB Rahmen, die in einige unserer client-code (wir Transaktionen besser). Dass code, erfasst die SQL-Transaktionen, aber nicht . Der client-code auch alle in der version 1.1 .NET, so hätten wir um ein upgrade aller client-code. Vielen Dank für Ihre Hilfe!
InformationsquelleAutor der Frage Ed Schwehm | 2008-10-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gerade migriert, meine Anwendung von Service Broker zu MSMQ, ich würde Stimmen für die Verwendung von MSMQ. Es gibt mehrere Faktoren zu berücksichtigen, aber die meisten von denen haben zu tun mit, wie Sie Ihre Daten nutzen und wo die Verarbeitung Leben.
Dinge zu beachten, egal was Sie wählen,
InformationsquelleAutor der Antwort Aaron Weiker
Ich verwendet habe, MSMQ vor und die einzige Sache, die ich möchte hinzufügen zur Liste ist eine überprüfung der Voraussetzungen für die Versionsverwaltung. Ich lief in ein Problem, wo die eine Seite hatte Win 2000 Server und daher MSMQ-v. 2, im Vergleich zu Win 2003 Server und MSMQ-v3. Alle meine .NET-code gezielten v. 3 und Sie sind nicht kompatibel... oder zumindest nicht so leicht.
Nur eine überlegung, wenn Sie gehen, der MSMQ-route.
InformationsquelleAutor der Antwort Mike L
Die Größe der Nachricht-Einschränkung in MSMQ angehalten wurde, meine Graben sich in diese Richtung. Ich bin Lern-Service-Broker für das Projekt.
InformationsquelleAutor der Antwort Dan
Verstehe ich nicht, warum? Kann die SSB senden von Nachrichten an offline-Ziel ohne Probleme. Alle diese Nachrichten auf übertragungs-Warteschlange und würde geliefert werden, wenn Ziel bleiben erreichbar.
InformationsquelleAutor der Antwort user368415