Pobieranie liczników komunikatów
W tym artykule przedstawiono różne sposoby pobierania liczby komunikatów dla kolejki lub subskrypcji. Znajomość liczby aktywnych komunikatów jest przydatna podczas określania, czy kolejka tworzy listę prac, która wymaga więcej zasobów do przetworzenia niż to, co zostało obecnie wdrożone.
Licznik | opis |
---|---|
ActiveMessageCount | Liczba komunikatów w kolejce lub subskrypcji, które są w stanie aktywnym i są gotowe do dostarczenia. Obejmuje to komunikaty odroczone. |
ScheduledMessageCount | Liczba komunikatów w stanie zaplanowanym. |
DeadLetterMessageCount | Liczba komunikatów w kolejce utraconych komunikatów. |
TransferMessageCount | Liczba komunikatów oczekujących na przeniesienie do innej kolejki lub tematu. |
TransferDeadLetterMessageCount | Liczba komunikatów, które nie mogły zostać przeniesione do innej kolejki lub tematu i zostały przeniesione do kolejki utraconych komunikatów. |
Jeśli aplikacja chce skalować zasoby na podstawie długości kolejki, powinna to zrobić za pomocą mierzonego tempa. Pozyskiwanie liczników komunikatów jest kosztowną operacją wewnątrz brokera komunikatów i wykonywanie jej często bezpośrednio i niekorzystnie wpływa na wydajność jednostki.
Kolejną przydatną metryczką do rozważenia na potrzeby skalowania jest czas między wysłaniem najnowszej wiadomości a przetworzeniem, nazywanym również "czasem krytycznym". Jest to przydatne w scenariuszach, w których kolejka może zawierać tysiące komunikatów, ale przetwarzanie jest wystarczająco szybkie, aby nadążyć, dając "krytyczny czas" zaledwie kilka sekund, co może być więcej niż wystarczające dla czegoś takiego jak punkt końcowy wysyłania wiadomości e-mail. Biblioteki innych firm, takie jak NServiceBus , emitują te i inne przydatne metryki za pośrednictwem technologii OpenTelemetry.
Uwaga
Komunikaty wysyłane do tematu usługi Service Bus są przekazywane do subskrypcji tego tematu. Tak więc liczba aktywnych komunikatów w samym temacie wynosi 0, ponieważ te komunikaty zostały pomyślnie przekazane do subskrypcji. Pobierz liczbę komunikatów w subskrypcji i sprawdź, czy jest ona większa niż 0. Mimo że w subskrypcji są wyświetlane komunikaty, są one rzeczywiście przechowywane w magazynie należącym do tematu. Jeśli spojrzysz na subskrypcje, będą one miały liczbę komunikatów innych niż zero, które przyczyniają się do magazynu używanego przez temat.
Przy użyciu witryny Azure Portal
Przejdź do przestrzeni nazw i wybierz kolejkę. Na stronie Przegląd kolejki są wyświetlane liczniki komunikatów.
Przejdź do przestrzeni nazw, wybierz temat, a następnie wybierz subskrypcję tematu. Na stronie Przegląd kolejki są wyświetlane liczniki komunikatów.
Korzystanie z interfejsu wiersza polecenia platformy Azure
az servicebus queue show
Użyj polecenia , aby uzyskać szczegóły liczby komunikatów dla kolejki, jak pokazano w poniższym przykładzie.
az servicebus queue show --resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--query countDetails
Oto przykładowe dane wyjściowe:
ActiveMessageCount DeadLetterMessageCount ScheduledMessageCount TransferMessageCount TransferDeadLetterMessageCount
-------------------- ------------------------ ----------------------- ---------------------- --------------------------------
0 0 0 0 0
az servicebus topic subscription show
Użyj polecenia , aby uzyskać szczegóły liczby komunikatów dla subskrypcji, jak pokazano w poniższym przykładzie.
az servicebus topic subscription show --resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysub \
--query countDetails
Korzystanie z programu Azure PowerShell
Za pomocą programu PowerShell można uzyskać szczegóły liczby komunikatów dla kolejki w następujący sposób:
$queueObj=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue
$queueObj.CountDetails
Oto przykładowe dane wyjściowe:
ActiveMessageCount : 7
DeadLetterMessageCount : 1
ScheduledMessageCount : 3
TransferMessageCount : 0
TransferDeadLetterMessageCount : 0
Możesz uzyskać szczegóły liczby komunikatów dla subskrypcji w następujący sposób:
$topicObj= Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-TopicName mytopic `
-SubscriptionName mysub
$topicObj.CountDetails
Zwrócony MessageCountDetails
obiekt ma następujące właściwości: ActiveMessageCount
, , DeadLetterMessageCount
ScheduledMessageCount
, TransferDeadLetterMessageCount
, TransferMessageCount
.
Następne kroki
Wypróbuj przykłady w wybranym języku, aby zapoznać się z funkcjami usługi Azure Service Bus.
- Przykłady biblioteki klienta usługi Azure Service Bus dla platformy .NET (najnowsza wersja)
- Przykłady biblioteki klienta usługi Azure Service Bus dla języka Java (najnowsza wersja)
- Przykłady biblioteki klienta usługi Azure Service Bus dla języka Python
- Przykłady biblioteki klienta usługi Azure Service Bus dla języka JavaScript
- Przykłady biblioteki klienta usługi Azure Service Bus dla języka TypeScript
Znajdź przykłady dla starszych bibliotek klienckich .NET i Java poniżej:
- Przykłady biblioteki klienta usługi Azure Service Bus dla platformy .NET (starsza wersja)
- Przykłady bibliotek klienta usługi Azure Service Bus dla języka Java (starsza wersja)
30 września 2026 r. wycofamy biblioteki zestawu SDK usługi Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus i com.microsoft.azure.servicebus, które nie są zgodne z wytycznymi dotyczącymi zestawu Azure SDK. Zakończymy również obsługę protokołu SBMP, więc nie będzie można już używać tego protokołu po 30 września 2026 r. Przeprowadź migrację do najnowszych bibliotek zestawu Azure SDK, które oferują krytyczne aktualizacje zabezpieczeń i ulepszone możliwości przed tą datą.
Mimo że starsze biblioteki mogą być nadal używane poza 30 września 2026 r., nie będą już otrzymywać oficjalnej pomocy technicznej i aktualizacji od firmy Microsoft. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu pomocy technicznej.