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.
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.
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.
- Azure Service Bus-Clientbibliothekbeispiele für .NET (neueste Version)
- Azure Service Bus-Clientbibliothekbeispiele für Java (neueste Version)
- Azure Service Bus-Clientbibliothekbeispiele für Python
- Azure Service Bus-Clientbibliothekbeispiele für JavaScript
- Azure Service Bus-Clientbibliothekbeispiele für TypeScript
Hier finden Sie Beispiele für die älteren .NET- und Java-Clientbibliotheken:
- Azure Service Bus-Clientbibliothekbeispiele für .NET (Legacy)
- Azure Service Bus-Clientbibliothekbeispiele für Java (Legacy)
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.