VERTRIEB: 1-800-867-1380

Migrieren von Anwendungen, die Messagingtechnologien verwenden

Letzte Aktualisierung: Januar 2014

Autoren: Kun Cheng
Mitwirkende: Sreedhar Pelluru, Valery Mizonov, Christian Martinez, Rama Ramani
Bearbeiter: Steve Howard, Seth Manheim

Nachrichtenwarteschlangen werden häufig für die Kommunikation zwischen Anwendungen oder innerhalb der Komponenten einer Anwendung verwendet. Beim Entwerfen von Funktionen für moderne Anwendungen können Architekten und Entwickler mithilfe von Nachrichtenwarteschlangen einen asynchronen Kommunikationskanal herstellen. Mithilfe einer Nachrichtenwarteschlange kann der Absender Nachrichten senden und andere Aufgaben fortsetzen, ohne auf eine Antwort der Empfänger warten zu müssen. Die Empfänger können die Nachrichten unabhängig empfangen und verarbeiten, ohne die Absender zu blockieren. Mithilfe dieses Mechanismus können ansonsten eng miteinander verknüpfe Anwendungskomponenten entkoppelt werden, um eine flexiblere und besser skalierbare Lösung bereitzustellen.

Bei der Anwendungsmigration von einer lokalen Umgebung zu Windows Azure sollten Architekten und Entwickler die aktuelle Architektur daraufhin überprüfen, ob Windows Azure-Warteschlangen oder der Microsoft Azure Service Bus verwendet werden können, um die Vorteile einer lose verbundenen Architektur zu nutzen, und ob insbesondere für die Windows Azure Platform Skalierungsmöglichkeiten bestehen.

Windows Azure-Warteschlangen basieren auf dem Windows Azure-Speicher und stellen einen grundlegenden Warteschlangenmechanismus bereit, um die Punkt-zu-Punkt-Kommunikation zu unterstützen. Windows Azure-Warteschlangen unterstützen den Zugriff über REST-basiertes HTTP oder HTTPS. Jede Nachrichtenwarteschlange unterstützt bis zu 100 TB (Limit des aktuellen Speicherkontos). Jede Nachricht kann bis zu 64 KB umfassen. Ausführliche Informationen finden Sie in diesem Artikel.


Am häufigsten werden Windows Azure-Warteschlangen für Webrollen als Absender verwendet, um Arbeitsaufgaben in die Warteschlange einzureihen. Sie können sie in einer Workerrolle auch als Empfänger verwenden, um Arbeitsaufgaben aus der Warteschlange zu entfernen und asynchron zu verarbeiten.


Die Windows Azure Platform ermöglicht auch das warteschlangenbasierte Messaging über den Servicebus. Neben Warteschlangen ermöglicht der Servicebus auch ein sicheres Messaging und bietet Relayfunktionen zur Unterstützung verteilter Anwendungen in Windows Azure oder Hybridbereitstellungen (lokal und Windows Azure). Für Messagingmechanismen unterstützt der Servicebus die Punkt-zu-Punkt-Kommunikation über Service Bus-Warteschlangen und das Veröffentlichen/Abonnieren-Modell über Service Bus-Themen und -Abonnements. Mithilfe von Servicebus-Themen und -Abonnements können mehrere Abonnenten gleichzeitig auf die Aktivitäten eines einzelnen Verlegers lauschen. Relay-Funktionen unterstützen Szenarien für Hybridlösungen, in denen Unternehmensressourcen in einer lokalen Umgebung oder privaten Cloud für die Kommunikation mit Cloudressourcen erweitert werden können. Der Servicebus unterstützt den Zugriff über REST-basiertes HTTP/HTTPS oder das TCP-Protokoll. Jede Servicebus-Warteschlange kann bis zu 5 GB umfassen und jede Nachricht bis zu 256 KB.

Windows Azure-Warteschlangen und Servicebus-Warteschlangen weisen zahlreiche Unterschiede auf. Diese betreffen beispielsweise die Authentifizierung, Transaktionsunterstützung und WCF-Integration. Im Artikel Windows Azure-Warteschlangen und Windows Azure Service Bus-Warteschlangen – Vergleich und Gegenüberstellung finden Sie eine ausführliche Gegenüberstellung der beiden Warteschlangentechnologien.

Windows-Anwendungen verwenden im Allgemeinen Microsoft Message Queuing (MSMQ) als Warteschlangenmechanismus. MSMQ ermöglicht Anwendungen, die in getrennten Prozessen auf separaten Servern ausgeführt werden, eine permanente, lose gekoppelte Kommunikation. Darüber hinaus ermöglicht der Mechanismus Anwendungen in heterogenen Netzwerkumgebungen sogar den Informationsaustausch, wenn sie nicht zur gleichen Zeit online sind. Er bietet garantierte Nachrichtenzustellung, Unterstützung verteilter Transaktionen, effizientes Routing, Sicherheit sowie prioritätsbasiertes Messaging.

Wenn Sie Anwendungen, die die MSMQ-Technologie nutzen, zur Windows Azure Platform migrieren, sollten Sie beachten, dass MSMQ derzeit nicht von Windows Azure unterstützt wird. Die Migration erfordert Codeänderungen, damit Windows Azure-Warteschlangen genutzt werden können. In den folgenden Abschnitten werden unterschiedliche Optionen beschrieben, wie Sie Anwendungen, die die MSMQ-Technologie nutzen, zur Windows Azure Platform migrieren.

Der Servicebus ist in vielfacher Hinsicht die Windows Azure-Funktion, die MSMQ am ähnlichsten ist. Beide weisen ähnliche Funktionen auf, z. B. grundlegende Warteschlangenvorgänge, Transaktionsunterstützung sowie Warteschlangen für unzustellbare Nachrichten. Zur Verwendung des Servicebus sind jedoch andere APIs als für MSMQ erforderlich, und die Semantik unterscheidet sich in vielen Punkten. Im Folgenden sind einige wichtige Unterschiede in Hinsicht auf die Kapazität und Leistung aufgeführt:

  • Die Nachrichtengröße des Servicebus ist auf eine Obergrenze von 256 KB (sowohl Header als auch Textkörper) festgelegt, während MSMQ-Nachrichten eine Größe bis zu 4 MB aufweisen können.

  • Servicebus-Warteschlangen sind auf eine maximale Größe von 5 GB beschränkt. Die Größe der MSMQ-Warteschlange wird nur durch Computerhardware oder konfigurierbare Kontingente beschränkt.

  • Servicebus-Warteschlangen können einen Nachrichtendurchsatz von bis zu 2.000 Nachrichten pro Sekunde erreichen. Der MSMQ-Durchsatz kann bei mehr als 6.000 Nachrichten pro Sekunde (basierend auf Vergleichstests mit Nachrichten von 1 KB) liegen. Ausführliche Informationen finden Sie unter Optimieren der Leistung in einer Microsoft Message Queue Server-Umgebung. .

Um die Migration zu erleichtern, können die lokale MSMQ-Version und der Servicebus in Windows Azure jedoch über eine Bridge verbunden werden. Beispielcode finden Sie hier.

Die Windows Azure-Warteschlangen bieten einen standardmäßigen Punkt-zu-Punkt-Kommunikationskanal. Windows Azure-Warteschlangen unterstützen keine heterogenen Umgebungen, wie dies bei MSMQ der Fall ist. Außerdem ist keine systemeigene Unterstützung für Funktionen verfügbar, die in einer typischen MSMQ-Umgebung unterstützt werden, z. B. eine automatische Warteschlange für unzustellbare Nachrichten, Transaktionen und Reihenfolgengarantie. Anwendungsentwickler können die Windows Azure-Warteschlange jedoch erweitern, indem sie Funktionen implementieren, um MSMQ-ähnliche Funktionen zu erhalten. Dazu muss die Anwendung jedoch angepasst werden.

Aufgrund der integrierten MSMQ-Unterstützung von Windows Server wird bei Ausführung von MSMQ auf demselben Knoten wie dem der Workerrolle der volle Funktionsumfang der lokalen MSMQ-Version erzielt. Die Workerrolle kann jedoch von Failovern und Dienstwartungen betroffen sein. In diesem Fall gehen sämtliche Statusinformationen, z. B. im lokalen MSMQ-Speicher enthaltene Nachrichten, verloren und können nicht wiederhergestellt werden. Sofern MSMQ nicht zustandslos verwendet wurde und die Anwendung nicht für die Behandlung von Rollenfailoversituationen konzipiert wurde, wird davon abgeraten, MSMQ in einer Workerrolleninstanz auszuführen.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2014 Microsoft