Włączanie utraconych komunikatów po wygaśnięciu komunikatów dla kolejek i subskrypcji usługi Azure Service Bus
Kolejki i subskrypcje usługi Azure Service Bus dla tematów udostępniają dodatkową kolejkę o nazwie kolejka utraconych komunikatów (DLQ). Kolejka utraconych komunikatów nie musi być jawnie utworzona. Ponadto nie można jej usunąć ani zarządzać nią niezależnie od obiektu głównego. Celem kolejki utraconych komunikatów jest wstrzymanie komunikatów, których nie można dostarczyć do żadnego odbiorcy lub komunikatów, których nie można przetworzyć. Aby uzyskać więcej informacji, zobacz Omówienie kolejek utraconych komunikatów usługi Service Bus. W tym artykule przedstawiono różne sposoby włączania utraconych komunikatów dla kolejek i subskrypcji usługi Service Bus.
Przy użyciu witryny Azure Portal
Podczas tworzenia kolejki lub subskrypcji tematu w witrynie Azure Portal wybierz pozycję Włącz utracony zapis po wygaśnięciu komunikatu, jak pokazano w poniższych przykładach.
Tworzenie kolejki z włączoną obsługą utraconych komunikatów
Tworzenie subskrypcji z włączoną obsługą utraconych komunikatów
Aktualizowanie ustawienia wygaśnięcia komunikatów utraconych dla istniejącej kolejki
Na stronie Przegląd kolejki usługi Service Bus wybierz bieżącą wartość dla ustawienia Wygaśnięcia utraconych komunikatów. W poniższym przykładzie bieżąca wartość to Wyłączone. Możesz włączyć lub wyłączyć utracony zapis po wygaśnięciu wiadomości w oknie podręcznym.
Aktualizowanie ustawienia wygaśnięcia komunikatów utraconych dla istniejącej subskrypcji
Na stronie Przegląd subskrypcji usługi Service Bus wybierz bieżącą wartość ustawienia Nieaktywne wysyłanie komunikatów po wygaśnięciu wiadomości. W poniższym przykładzie bieżąca wartość to Wyłączone. Możesz włączyć lub wyłączyć utracony zapis po wygaśnięciu wiadomości w oknie podręcznym.
Korzystanie z interfejsu wiersza polecenia platformy Azure
Aby utworzyć kolejkę z włączonym usuwaniem utraconych komunikatów, użyj az servicebus queue create
polecenia z ustawioną wartością --enable-dead-lettering-on-message-expiration
true
.
az servicebus queue create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-dead-lettering-on-message-expiration true
Aby włączyć ustawienie wygaśnięcia komunikatów utraconych dla istniejącej kolejki, użyj az servicebus queue update
polecenia z ustawioną wartością --enable-dead-lettering-on-message-expiration
true
.
az servicebus queue update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-dead-lettering-on-message-expiration true
Aby utworzyć subskrypcję tematu z obsługą utraconych komunikatów po wygaśnięciu wiadomości, użyj az servicebus topic subscription create
polecenia z ustawioną wartością --enable-dead-lettering-on-message-expiration
true
.
az servicebus topic subscription create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysubscription \
--enable-dead-lettering-on-message-expiration true
Aby włączyć ustawienie wygaśnięcia komunikatów utraconych dla subskrypcji tematu, użyj az servicebus topic subscription update
polecenia z zestawem --enable-dead-lettering-on-message-expiration
true
.
az servicebus topic subscription update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysubscription \
--enable-dead-lettering-on-message-expiration true
Uwaga
Jeśli określisz kolejkę lub temat przy użyciu parametru --forward-dead-lettered-messages-to
, usługa Service Bus automatycznie przekazuje komunikaty nieaktywne do tej kolejki lub tematu. Oto przykład: az servicebus queue create --resource-group mysbusrg --namespace-name mysbusns --name myqueue --enable-dead-lettering-on-message-expiration true --forward-dead-lettered-messages-to myqueue2
.
Korzystanie z programu Azure PowerShell
Aby utworzyć kolejkę z włączonym usuwaniem utraconych komunikatów, użyj New-AzServiceBusQueue
polecenia z ustawioną wartością -DeadLetteringOnMessageExpiration
$True
.
New-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-DeadLetteringOnMessageExpiration $True
Aby włączyć ustawienie wygasania komunikatów dla istniejącej kolejki, użyj Set-AzServiceBusQueue
polecenia , jak pokazano w poniższym przykładzie.
$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue
$queue.DeadLetteringOnMessageExpiration=$True
Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-QueueObj $queue
Aby utworzyć subskrypcję tematu z włączonym usuwaniem utraconych komunikatów po wygaśnięciu wiadomości, użyj New-AzServiceBusSubscription
polecenia z ustawioną wartością -DeadLetteringOnMessageExpiration
$True
.
New-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-TopicName mytopic `
-SubscriptionName mysubscription `
-DeadLetteringOnMessageExpiration $True
Aby włączyć ustawienie wygasania komunikatów dla istniejącej subskrypcji, zobacz poniższy przykład.
$subscription=Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-TopicName mytopic `
-SubscriptionName mysub
$subscription.DeadLetteringOnMessageExpiration=$True
Set-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic `
-SubscriptionName mysub `
-SubscriptionObj $subscription
Uwaga
Jeśli określisz kolejkę lub temat przy użyciu parametru -ForwardDeadLetteredMessagesTo
, usługa Event Grid automatycznie przekazuje komunikaty z komunikatami utraconymi do tej kolejki lub tematu.
Korzystanie z szablonu usługi Azure Resource Manager
Aby utworzyć kolejkę z włączonym wygasaniem komunikatów utraconych, ustaw deadLetteringOnMessageExpiration
wartość w sekcji właściwości kolejki na true
wartość . Aby uzyskać więcej informacji, zobacz Dokumentacja szablonu przestrzeni nazw/kolejek Microsoft.ServiceBus.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serviceBusNamespaceName": {
"type": "string",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusQueueName": {
"type": "string",
"metadata": {
"description": "Name of the Queue"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"type": "Microsoft.ServiceBus/namespaces",
"apiVersion": "2018-01-01-preview",
"name": "[parameters('serviceBusNamespaceName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {},
"resources": [
{
"type": "Queues",
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusQueueName')]",
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
],
"properties": {
"deadLetteringOnMessageExpiration": true
}
}
]
}
]
}
Aby utworzyć subskrypcję tematu z włączonym usuwaniem utraconych komunikatów po wygaśnięciu wiadomości, ustaw deadLetteringOnMessageExpiration
w sekcji właściwości kolejki wartość true
. Aby uzyskać więcej informacji, zobacz Microsoft.ServiceBus namespaces/topics/subscriptions template reference (Dokumentacja szablonu Microsoft.ServiceBus/topics/subscriptions).
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"service_BusNamespace_Name": {
"type": "string",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusTopicName": {
"type": "string",
"metadata": {
"description": "Name of the Topic"
}
},
"serviceBusSubscriptionName": {
"type": "string",
"metadata": {
"description": "Name of the Subscription"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"apiVersion": "2018-01-01-preview",
"name": "[parameters('service_BusNamespace_Name')]",
"type": "Microsoft.ServiceBus/namespaces",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusTopicName')]",
"type": "topics",
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces/', parameters('service_BusNamespace_Name'))]"
],
"properties": {
"maxSizeInMegabytes": 1024
},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusSubscriptionName')]",
"type": "Subscriptions",
"dependsOn": [
"[parameters('serviceBusTopicName')]"
],
"properties": {
"deadLetteringOnMessageExpiration": true
}
}
]
}
]
}
]
}
Uwaga
Jeśli określisz kolejkę lub temat dla forwardDeadLetteredMessagesTo
właściwości, usługa Event Grid automatycznie przekazuje komunikaty z komunikatami utraconymi do tej kolejki lub tematu.
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:
- 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.