(0) exportieren Drucken
Alle erweitern

Servicebus-Warteschlangen

Letzte Aktualisierung: April 2014

Servicebus-Warteschlangen bieten Messagingfunktionen, die umfangreiche und heterogene Anwendungen (lokal oder in der Cloud) unterstützen, um Nachrichten auf flexible, sichere und zuverlässige Weise über Netzwerk- und Vertrauensstellungsgrenzen hinweg auszutauschen.

Warteschlangen werden in Azure durch eine replizierte, stabile Speicherinfrastruktur gehostet. Die maximale Größe einer Warteschlange beträgt 5 GB. Die maximale Nachrichtengröße liegt stattdessen bei 256 KB. Mithilfe von Sitzungen können Sie jedoch sequenzielle verknüpfte Nachrichten in unbegrenzter Größe erstellen. Auf Warteschlangen wird über die folgenden APIs zugegriffen:

  1. Die über die neue Microsoft.ServiceBus.Messaging-Assembly verfügbare, neue Messaging-API

  2. Windows Communication Foundation (WCF) über die neue NetMessagingBinding-Klasse

  3. Service Bus-REST-API.

Warteschlangenentitäten bieten folgende Funktionen:

  1. Sitzungsbasierte Korrelation, die die einfache Erstellung von Pfaden für Multiplexanforderungen/-antworten ermöglicht.

  2. Zuverlässige Übermittlungsmuster unter Verwendung des PeekLock-Empfangsmodus.

  3. Transaktionsunterstützung, um sicherzustellen, dass für Messagingbatches (sowohl Sende- als auch Empfangsvorgänge) ein atomares Commit ausgeführt wird.

  4. Erkennen eingehender Nachrichtenduplikate, sodass Clients dieselbe Nachricht mehrmals ohne negative Auswirkungen senden können.

  5. Eine Funktion für unzustellbare Nachrichten, die nicht verarbeitet werden können oder ablaufen, bevor sie empfangen werden.

  6. Aufschieben von Nachrichten für die spätere Verarbeitung. Diese Funktion ist besonders in folgenden Fällen von Nutzen:

    1. Nachrichten werden außerhalb der erwarteten Sequenz empfangen und müssen gespeichert werden, während ein Prozess auf eine bestimmte Nachricht wartet, um den Vorgang fortzusetzen.

    2. Nachrichten müssen anhand einer Reihe von Eigenschaften verarbeitet werden, die deren Priorität während einer Datenverkehrsspitze definieren.

In der .NET-API wird die Nachrichtenentität von der BrokeredMessage-Klasse modelliert, die verschiedene Eigenschaften (z. B. MessageId, SessionID und CorrelationId) verfügbar macht, über die Funktionen wie die automatische Erkennung von Duplikaten oder die sitzungsfähige Kommunikation genutzt werden können. Sie können ein QueueDescription-Objekt zur Angabe der Metadaten verwenden, durch die das Verhalten der erstellten Warteschlange modelliert wird:

  1. Die DefaultMessageTimeToLive-Eigenschaft gibt den standardmäßigen Wert für die Nachrichtengültigkeitsdauer an.

  2. Die DuplicateDetectionHistoryTimeWindow-Eigenschaft definiert die Dauer des Duplikaterkennungsverlaufs.

  3. Mit der EnableDeadLetteringOnMessageExpiration-Eigenschaft können Sie beim Nachrichtenablauf die Funktion für unzustellbare Nachrichten aktivieren oder deaktivieren.

  4. Die LockDuration-Eigenschaft definiert die Dauer der Sperre, die von einem Consumer für den Empfangsmodus PeekLock verwendet wird. Im Empfangsmodus ReceiveAndDelete wird eine Nachricht aus der Warteschlange gelöscht, sobald sie von einem Consumer gelesen wurde. Im Gegensatz dazu wird eine Nachricht im Empfangsmodus PeekLock vor anderen Empfängern verborgen, bis das in der LockDuration-Eigenschaft definierte Timeout erreicht ist. Bis dahin sollte der Empfänger die Nachricht gelöscht und die Complete-Methode des BrokeredMessage-Objekts aufgerufen haben.

  5. Die MaxSizeInMegabytes-Eigenschaft definiert die maximale Warteschlangengröße in Megabyte.

  6. Die RequiresDuplicateDetection-Eigenschaft aktiviert/deaktiviert die Erkennung von Nachrichtenduplikaten. Die RequiresSession-Eigenschaft aktiviert/deaktiviert Sitzungen.

  7. MessageCount gibt die Anzahl der Nachrichten in der Warteschlange zurück. Diese Eigenschaft ist sehr hilfreich, da ein intelligentes System anhand des Eigenschaftswerts entscheiden kann, ob die Anzahl konkurrierender Consumer, die gleichzeitig Nachrichten aus der Warteschlange empfangen und verarbeiten, erhöht oder verringert werden soll.

WarningWarnung
Einige dieser Eigenschaften können mit der UpdateQueue- oder UpdateTopic-API oder (im Fall von Service Bus for Windows Server) mit PowerShell-/Befehlszeilenaufrufen geändert werden.

Durch die Verwendung von Warteschlangen kann ein stark variierender Datenverkehr in einen vorhersagbaren Datenstrom von Arbeitsaufgaben umgewandelt werden. Anschließend wird die Last auf mehrere Arbeitsprozesse verteilt, deren Anzahl dynamisch an die Anzahl eingehender Nachrichten angepasst werden kann. In einem Szenario mit konkurrierenden Consumern konkurrieren mehrere Consumer um den Empfang der Nachricht, wenn ein Verleger eine Nachricht in eine Warteschlange schreibt. Allerdings wird die betreffende Nachricht nur von einem Consumer empfangen und verarbeitet.

In dienstorientierten Architekturen oder Service Bus-Architekturen, die aus mehreren heterogenen Systemen bestehen, sind Interaktionen zwischen autonomen Systemen asynchron und lose verbunden. In diesem Kontext bietet die Verwendung von Messagingentitäten wie Warteschlangen und Themen (siehe nächster Abschnitt) eine höhere Agilität, Skalierbarkeit und Flexibilität innerhalb der Gesamtarchitektur und hilft gleichzeitig, die Anzahl lose verbundener Einzelsysteme zu verringern.

Siehe auch

Anzeigen:
© 2014 Microsoft