Freigeben über


Abrufen von Nachrichtenzählern

In diesem Artikel werden verschiedene Möglichkeiten zum Abrufen der Nachrichtenanzahl für eine Warteschlange oder ein Abonnement erläutert. Die Anzahl aktiver Nachrichten zu kennen ist nützlich, um festzustellen, ob eine Warteschlange einen Rückstand aufbaut, der mehr Ressourcen für die Verarbeitung benötigt als diejenigen, die derzeit bereitgestellt sind.

Leistungsindikator BESCHREIBUNG
ActiveMessageCount Anzahl von Nachrichten in der Warteschlange oder im Abonnement, die sich im aktiven Zustand befinden und zustellbereit sind. Dazu gehören verzögerte Nachrichten.
ScheduledMessageCount Anzahl von Nachrichten im Zustand „Geplant“.
DeadLetterMessageCount Anzahl von Nachrichten in der Warteschlange für unzustellbare Nachrichten.
TransferMessageCount Anzahl von Nachrichten, deren Übertragung in eine andere Warteschlange oder ein anderes Thema aussteht.
TransferDeadLetterMessageCount Anzahl von Nachrichten, die nicht in eine andere Warteschlange oder ein anderes Thema übertragen und in die Warteschlange für unzustellbare Nachrichten verschoben wurden.

Wenn eine Anwendung Ressourcen anhand der Länge der Warteschlange skalieren möchte, sollte sie dies langsam tun. Die Erfassung der Nachrichtenzählern ist ein aufwendiger Vorgang innerhalb des Nachrichtenbrokers, dessen Ausführung häufig direkte und negative Auswirkungen auf die Leistung der Entität hat.

Eine weitere nützliche Metrik, die bei der Skalierung berücksichtigt werden sollte, ist die Zeit zwischen dem Versand der letzten Nachricht und ihrer Verarbeitung, auch als „kritische Zeit“ bekannt. Dies ist hilfreich für Szenarien, in denen eine Warteschlange Tausende von Nachrichten enthalten kann, die Verarbeitung jedoch schnell genug ist, um Schritt zu halten, sodass die „kritische Zeit“ nur ein paar Sekunden beträgt, was für einen E-Mail-Versand-Endpunkt mehr als ausreichend sein kann. Drittanbieterbibliotheken wie NServiceBus geben diese und andere nützliche Metriken über OpenTelemetry aus.

Hinweis

Die an ein Service Bus-Thema gesendeten Nachrichten werden an Abonnements für dieses Thema weitergeleitet. Somit ist die Anzahl aktiver Nachrichten für das Thema selbst 0, da diese Nachrichten erfolgreich an das Abonnement weitergeleitet wurden. Ermitteln Sie die Anzahl der Nachrichten für das Abonnement, und überprüfen Sie, ob sie größer als 0 ist. Auch wenn Nachrichten im Abonnement angezeigt werden, befinden sie sich tatsächlich in einem Speicher, der im Besitz des Themas ist. Wenn Sie sich die Abonnements ansehen, dann hätten sie eine Nachrichtenanzahl ungleich Null, die zum Speicherplatz beiträgt, der vom Thema verwendet wird.

Verwenden des Azure-Portals

Navigieren Sie zu Ihrem Namespace, und wählen Sie die Warteschlange aus. Auf der Seite Übersicht für die Warteschlange werden Nachrichtenzähler angezeigt.

Screenshot: Seite „Übersicht“ einer Warteschlange mit hervorgehobenem Abschnitt „Nachrichtenanzahl“.

Navigieren Sie zu Ihrem Namespace, wählen Sie das Thema aus, und wählen Sie dann das Abonnement für das Thema aus. Auf der Seite Übersicht für die Warteschlange werden Nachrichtenzähler angezeigt.

Screenshot: Seite „Übersicht“ eines Abonnements eines Themas mit hervorgehobenem Abschnitt „Nachrichtenanzahl“.

Verwenden der Azure-Befehlszeilenschnittstelle

Verwenden Sie den Befehl az servicebus queue show, um die Details zur Nachrichtenanzahl für eine Warteschlange abzurufen, wie im folgenden Beispiel gezeigt.

az servicebus queue show --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --query countDetails

Hier ist eine Beispielausgabe:

ActiveMessageCount    DeadLetterMessageCount    ScheduledMessageCount    TransferMessageCount    TransferDeadLetterMessageCount
--------------------  ------------------------  -----------------------  ----------------------  --------------------------------
0                     0                         0                        0                       0

Verwenden Sie den Befehl az servicebus topic subscription show, um die Details zur Nachrichtenanzahl für ein Abonnement abzurufen, wie im folgenden Beispiel gezeigt.

az servicebus topic subscription show --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysub \
    --query countDetails

Verwenden von Azure PowerShell

Mit PowerShell können Sie die Details zur Nachrichtenanzahl für eine Warteschlange wie folgt abrufen:

$queueObj=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
                    -NamespaceName mynamespace `
                    -QueueName myqueue 

$queueObj.CountDetails

Hier ist die Beispielausgabe:

ActiveMessageCount             : 7
DeadLetterMessageCount         : 1
ScheduledMessageCount          : 3
TransferMessageCount           : 0
TransferDeadLetterMessageCount : 0

Sie können die Details zur Nachrichtenanzahl für ein Abonnement wie folgt abrufen:

$topicObj= Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
                -NamespaceName mynamespace `
                -TopicName mytopic `
                -SubscriptionName mysub

$topicObj.CountDetails

Das zurückgegebene MessageCountDetails-Objekt weist die folgenden Eigenschaften auf: ActiveMessageCount, DeadLetterMessageCount, ScheduledMessageCount, TransferDeadLetterMessageCount, TransferMessageCount.

Nächste Schritte

Sehen Sie sich die Beispiele in der Sprache Ihrer Wahl an, um Azure Service Bus-Features zu untersuchen.

Hier finden Sie Beispiele für die älteren .NET- und Java-Clientbibliotheken:

Am 30. September 2026 werden die Azure Service Bus SDK-Bibliotheken „WindowsAzure.ServiceBus“, „Microsoft.Azure.ServiceBus“ und „com.microsoft.azure.servicebus“ eingestellt, da sie nicht den Azure SDK-Richtlinien entsprechen. Außerdem wird die Unterstützung des SBMP-Protokolls beendet, sodass Sie dieses Protokoll nach dem 30. September 2026 nicht mehr verwenden können. Migrieren Sie vor diesem Datum zu den neuesten Azure SDK-Bibliotheken, die wichtige Sicherheitsupdates und verbesserte Funktionen bieten.

Obwohl die älteren Bibliotheken noch über den 30. September 2026 hinaus verwendet werden können, erhalten sie keinen offiziellen Support und keine Updates mehr von Microsoft. Weitere Informationen finden Sie in der Ankündigung der Supporteinstellung.