Aktivera identifiering av duplicerade meddelanden för en Azure Service Bus-kö eller ett ämne
När du aktiverar dubblettidentifiering för en kö eller ett ämne behåller Azure Service Bus en historik över alla meddelanden som skickas till kön eller ämnet under en konfigurerad tid. Under det intervallet lagrar inte kön eller ämnet några duplicerade meddelanden. Om du aktiverar den här egenskapen garanteras leverans exakt en gång under en användardefinierad tidsperiod. Mer information finns i Dubblettidentifiering. Den här artikeln visar olika sätt att aktivera duplicerad meddelandeidentifiering för en Service Bus-kö eller ett ämne.
Kommentar
- Den grundläggande nivån för Service Bus stöder inte dubblettidentifiering. Standard- och Premium-nivåerna stöder dubblettidentifiering. Skillnader mellan dessa nivåer finns i Service Bus-priser.
- Du kan inte aktivera eller inaktivera dubblettidentifiering när kön eller ämnet har skapats. Du kan bara göra det när du skapar kön eller ämnet.
Med Azure Portal
När du skapar en kö i Azure-portalen väljer du Aktivera dubblettidentifiering enligt följande bild. Du kan konfigurera storleken på dubblettidentifieringsfönstret när du skapar en kö eller ett ämne.
När du skapar ett ämne i Azure-portalen väljer du Aktivera dubblettidentifiering enligt följande bild.
Du kan också konfigurera den här inställningen för en befintlig kö eller ett befintligt ämne om du hade aktiverat dubblettidentifiering när du skapade den.
Uppdatera fönsterstorleken för dubblettidentifiering för en befintlig kö eller ett ämne
Om du vill ändra fönsterstorleken för dubblettidentifiering för en befintlig kö eller ett ämne går du till sidan Översikt och väljer Ändra för fönstret Duplicerad identifiering.
Kö
Avsnitt
Använda Azure CLI
Om du vill skapa en kö med dubblettidentifiering aktiverat använder du az servicebus queue create
kommandot med --enable-duplicate-detection
inställt på true
.
az servicebus queue create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-duplicate-detection true \
--duplicate-detection-history-time-window P1D
Om du vill skapa ett ämne med dubblettidentifiering aktiverat använder du az servicebus topic create
kommandot med --enable-duplicate-detection
inställt på true
.
az servicebus topic create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name mytopic \
--enable-duplicate-detection true \
--duplicate-detection-history-time-window P1D
Ovanstående exempel anger också storleken på dubblettidentifieringsfönstret med hjälp av parametern --duplicate-detection-history-time-window
. Fönsterstorleken är inställd på en dag. Standardvärdet är 10 minuter och det högsta tillåtna värdet är sju dagar.
Om du vill uppdatera en kö med en ny storlek för az servicebus queue update
identifieringsfönstret använder du kommandot med parametern --duplicate-detection-history-time-window
. I det här exemplet uppdateras fönsterstorleken till sju dagar.
az servicebus queue update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--duplicate-detection-history-time-window P7D
Om du vill uppdatera ett ämne med en ny fönsterstorlek för identifiering använder du az servicebus topic update
kommandot med parametern --duplicate-detection-history-time-window
. I det här exemplet uppdateras fönsterstorleken till sju dagar.
az servicebus topic update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--duplicate-detection-history-time-window P7D
Använda Azure PowerShell
Om du vill skapa en kö med dubblettidentifiering aktiverat använder du New-AzServiceBusQueue
kommandot med -RequiresDuplicateDetection
inställt på $True
.
New-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-RequiresDuplicateDetection $True `
-DuplicateDetectionHistoryTimeWindow P1D
Om du vill skapa ett ämne med dubblettidentifiering aktiverat använder du New-AzServiceBusTopic
kommandot med -RequiresDuplicateDetection
inställt på true
.
New-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic `
-RequiresDuplicateDetection $True
-DuplicateDetectionHistoryTimeWindow P1D
Ovanstående exempel anger också storleken på dubblettidentifieringsfönstret med hjälp av parametern -DuplicateDetectionHistoryTimeWindow
. Fönsterstorleken är inställd på en dag. Standardvärdet är 10 minuter och det högsta tillåtna värdet är sju dagar.
Information om hur du uppdaterar en kö med en ny storlek för identifieringsfönstret finns i följande exempel. I det här exemplet uppdateras fönsterstorleken till sju dagar.
$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue
$queue.DuplicateDetectionHistoryTimeWindow='P7D'
Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-QueueObj $queue
Information om hur du uppdaterar ett ämne med en ny storlek för identifieringsfönstret finns i följande exempel. I det här exemplet uppdateras fönsterstorleken till sju dagar.
$topic=Get-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic
$topic.DuplicateDetectionHistoryTimeWindow='P7D'
Set-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic `
-TopicObj $topic
Använda Azure Resource Manager-mall
Om du vill skapa en kö med duplicerad identifiering aktiverad anger du requiresDuplicateDetection
till true
i avsnittet köegenskaper. Mer information finns i Mallreferens för Microsoft.ServiceBus-namnområden/köer. Ange ett värde för egenskapen för duplicateDetectionHistoryTimeWindow
att ange storleken på det dubbla identifieringsfönstret. I följande exempel är det inställt på en dag.
{
"$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": {
"requiresDuplicateDetection": true,
"duplicateDetectionHistoryTimeWindow": "P1D"
}
}
]
}
]
}
Om du vill skapa ett ämne med dubblettidentifiering aktiverat anger du requiresDuplicateDetection
till true
i avsnittet ämnesegenskaper. Mer information finns i Mallreferens för Microsoft.ServiceBus-namnområden/ämnen.
{
"$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"
}
},
"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": {
"requiresDuplicateDetection": true,
"duplicateDetectionHistoryTimeWindow": "P1D"
}
}
]
}
]
}
Nästa steg
Prova exemplen på det språk du väljer för att utforska Azure Service Bus-funktioner.
- Azure Service Bus-klientbiblioteksexempel för .NET (senaste)
- Azure Service Bus-klientbiblioteksexempel för Java (senaste)
- Azure Service Bus-klientbiblioteksexempel för Python
- Azure Service Bus-klientbiblioteksexempel för JavaScript
- Azure Service Bus-klientbiblioteksexempel för TypeScript
Hitta exempel för de äldre .NET- och Java-klientbiblioteken nedan:
- Azure Service Bus-klientbiblioteksexempel för .NET (äldre)
- Azure Service Bus-klientbiblioteksexempel för Java (äldre)
Den 30 september 2026 drar vi tillbaka Azure Service Bus SDK-biblioteken WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus och com.microsoft.azure.servicebus, som inte följer Riktlinjerna för Azure SDK. Vi kommer också att avsluta stödet för SBMP-protokollet, så du kommer inte längre att kunna använda det här protokollet efter den 30 september 2026. Migrera till de senaste Azure SDK-biblioteken, som erbjuder kritiska säkerhetsuppdateringar och förbättrade funktioner, före det datumet.
Även om de äldre biblioteken fortfarande kan användas efter den 30 september 2026 får de inte längre officiell support och uppdateringar från Microsoft. Mer information finns i meddelandet om supportavgång.