Povolení detekce duplicitních zpráv pro frontu služby Azure Service Bus nebo téma
Když povolíte zjišťování duplicit pro frontu nebo téma, Azure Service Bus uchovává historii všech zpráv odesílaných do fronty nebo tématu po dobu konfigurace. Během tohoto intervalu se ve frontě nebo tématu neukládají žádné duplicitní zprávy. Povolení této vlastnosti zaručuje přesně jednou doručení v čase definovaném uživatelem. Další informace najdete v tématu Detekce duplicit. Tento článek popisuje různé způsoby povolení detekce duplicitních zpráv pro frontu služby Service Bus nebo téma.
Poznámka:
- Úroveň Basic služby Service Bus nepodporuje detekci duplicit. Úrovně Standard a Premium detekci duplicit podporují. Rozdíly mezi těmito úrovněmi najdete v tématu Ceny služby Service Bus.
- Po vytvoření fronty nebo tématu nemůžete povolit nebo zakázat detekci duplicit. Můžete to udělat jenom v době vytvoření fronty nebo tématu.
Pomocí webu Azure Portal
Při vytváření fronty na webu Azure Portal vyberte Povolit detekci duplicit, jak je znázorněno na následujícím obrázku. Při vytváření fronty nebo tématu můžete nakonfigurovat velikost okna detekce duplicit.
Při vytváření tématu na webu Azure Portal vyberte Povolit detekci duplicit, jak je znázorněno na následujícím obrázku.
Toto nastavení můžete také nakonfigurovat pro existující frontu nebo téma, pokud jste při vytváření povolili detekci duplicit.
Aktualizace velikosti okna detekce duplicit pro existující frontu nebo téma
Pokud chcete změnit velikost okna detekce duplicit pro existující frontu nebo téma, vyberte na stránce Přehled možnost Změnit pro okno detekce duplicit.
Fronta
Téma
Použití Azure CLI
Chcete-li vytvořit frontu s povolenou detekcí duplicit, použijte az servicebus queue create
příkaz s nastaveným --enable-duplicate-detection
na true
.
az servicebus queue create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-duplicate-detection true \
--duplicate-detection-history-time-window P1D
Chcete-li vytvořit téma s povolenou detekcí duplicit, použijte az servicebus topic create
příkaz s --enable-duplicate-detection
nastaveným na true
.
az servicebus topic create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name mytopic \
--enable-duplicate-detection true \
--duplicate-detection-history-time-window P1D
Výše uvedené příklady také pomocí parametru --duplicate-detection-history-time-window
nastavují velikost okna detekce duplicit. Velikost okna je nastavená na jeden den. Výchozí hodnota je 10 minut a maximální povolená hodnota je sedm dní.
Pokud chcete aktualizovat frontu s novou velikostí okna detekce, použijte az servicebus queue update
příkaz s parametrem --duplicate-detection-history-time-window
. V tomto příkladu se velikost okna aktualizuje na sedm dní.
az servicebus queue update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--duplicate-detection-history-time-window P7D
Podobně k aktualizaci tématu s novou velikostí okna detekce použijte az servicebus topic update
příkaz s parametrem --duplicate-detection-history-time-window
. V tomto příkladu se velikost okna aktualizuje na sedm dní.
az servicebus topic update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--duplicate-detection-history-time-window P7D
Použití Azure Powershell
Chcete-li vytvořit frontu s povolenou detekcí duplicit, použijte New-AzServiceBusQueue
příkaz s nastaveným -RequiresDuplicateDetection
na $True
.
New-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-RequiresDuplicateDetection $True `
-DuplicateDetectionHistoryTimeWindow P1D
Chcete-li vytvořit téma s povolenou detekcí duplicit, použijte New-AzServiceBusTopic
příkaz s -RequiresDuplicateDetection
nastaveným na true
.
New-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic `
-RequiresDuplicateDetection $True
-DuplicateDetectionHistoryTimeWindow P1D
Výše uvedené příklady také pomocí parametru -DuplicateDetectionHistoryTimeWindow
nastavují velikost okna detekce duplicit. Velikost okna je nastavená na jeden den. Výchozí hodnota je 10 minut a maximální povolená hodnota je sedm dní.
Pokud chcete aktualizovat frontu s novou velikostí okna detekce, podívejte se na následující příklad. V tomto příkladu se velikost okna aktualizuje na sedm dní.
$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue
$queue.DuplicateDetectionHistoryTimeWindow='P7D'
Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-QueueObj $queue
Pokud chcete aktualizovat téma o nové velikosti okna detekce, podívejte se na následující příklad. V tomto příkladu se velikost okna aktualizuje na sedm dní.
$topic=Get-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic
$topic.DuplicateDetectionHistoryTimeWindow='P7D'
Set-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic `
-TopicObj $topic
Pomocí šablony Azure Resource Manageru
Pokud chcete vytvořit frontu s povolenou detekcí duplicit, nastavte requiresDuplicateDetection
ji true
v části vlastností fronty. Další informace naleznete v tématu Microsoft.ServiceBus namespaces/queues template reference. Zadejte hodnotu vlastnosti, duplicateDetectionHistoryTimeWindow
která nastaví velikost okna detekce duplicit. V následujícím příkladu je nastavená na jeden den.
{
"$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"
}
}
]
}
]
}
Pokud chcete vytvořit téma s povolenou detekcí duplicit, nastavte requiresDuplicateDetection
v true
části vlastností tématu. Další informace naleznete v tématu Microsoft.ServiceBus namespaces/topics template reference.
{
"$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"
}
}
]
}
]
}
Další kroky
Vyzkoušejte ukázky v jazyce podle vašeho výběru a prozkoumejte funkce služby Azure Service Bus.
- Ukázky klientské knihovny služby Azure Service Bus pro .NET (nejnovější)
- Ukázky klientské knihovny služby Azure Service Bus pro Javu (nejnovější)
- Ukázky klientské knihovny služby Azure Service Bus pro Python
- Ukázky klientské knihovny služby Azure Service Bus pro JavaScript
- Ukázky klientské knihovny služby Azure Service Bus pro TypeScript
Ukázky pro starší klientské knihovny .NET a Java najdete níže:
- Ukázky klientské knihovny služby Azure Service Bus pro .NET (starší verze)
- Ukázky klientské knihovny služby Azure Service Bus pro Javu (starší verze)
30. září 2026 vyřadíme knihovny sady SDK služby Azure Service Bus pro WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus a com.microsoft.azure.servicebus, které nevyhovují pokynům sady Azure SDK. Také ukončíme podporu protokolu SBMP, takže tento protokol už nebudete moct používat po 30. září 2026. Před tímto datem migrujte na nejnovější knihovny sady Azure SDK, které nabízejí důležité aktualizace zabezpečení a vylepšené funkce.
I když starší knihovny je možné používat i po 30. září 2026, nebudou už od Microsoftu dostávat oficiální podporu a aktualizace. Další informace najdete v oznámení o vyřazení podpory.