Share via


Dubbele berichtdetectie inschakelen voor een Azure Service Bus-wachtrij of een onderwerp

Wanneer u dubbele detectie inschakelt voor een wachtrij of onderwerp, houdt Azure Service Bus een geschiedenis bij van alle berichten die gedurende een bepaalde periode naar de wachtrij of het onderwerp worden verzonden. Tijdens dat interval worden in uw wachtrij of onderwerp geen dubbele berichten opgeslagen. Het inschakelen van deze eigenschap garandeert precies één keer dat een door de gebruiker gedefinieerde periode wordt geleverd. Zie Detectie van duplicaten voor meer informatie. In dit artikel vindt u verschillende manieren om dubbele berichtdetectie in te schakelen voor een Service Bus-wachtrij of een onderwerp.

Notitie

  • De Basic-laag van Service Bus biedt geen ondersteuning voor dubbele detectie. De lagen Standard en Premium bieden ondersteuning voor duplicaatdetectie. Zie Service Bus-prijzen voor verschillen tussen deze lagen.
  • U kunt dubbele detectie niet in- of uitschakelen nadat de wachtrij of het onderwerp is gemaakt. U kunt dit alleen doen op het moment dat u de wachtrij of het onderwerp maakt.

Azure-portal gebruiken

Wanneer u een wachtrij maakt in Azure Portal, selecteert u Dubbele detectie inschakelen, zoals wordt weergegeven in de volgende afbeelding. U kunt de grootte van het venster voor dubbele detectie configureren bij het maken van een wachtrij of onderwerp.

Enable duplicate detection at the time of the queue creation

Wanneer u een onderwerp maakt in Azure Portal, selecteert u Dubbele detectie inschakelen, zoals wordt weergegeven in de volgende afbeelding.

Enable duplicate detection at the time of the topic creation

U kunt deze instelling ook configureren voor een bestaande wachtrij of een bestaand onderwerp als u dubbele detectie hebt ingeschakeld op het moment van maken.

Venstergrootte voor dubbele detectie bijwerken voor een bestaande wachtrij of een onderwerp

Als u de grootte van het venster duplicaatdetectie voor een bestaande wachtrij of een onderwerp wilt wijzigen, selecteert u Op de pagina Overzicht de optie Wijzigen voor venster Duplicaatdetectie.

Wachtrij

Set duplicate detection window size for a queue

Onderwerp

Set duplicate detection window size for a topic

Azure CLI gebruiken

Als u een wachtrij wilt maken waarvoor dubbele detectie is ingeschakeld, gebruikt u de az servicebus queue create opdracht die --enable-duplicate-detection is ingesteld op true.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-duplicate-detection true \
    --duplicate-detection-history-time-window P1D

Als u een onderwerp wilt maken waarvoor dubbele detectie is ingeschakeld, gebruikt u de az servicebus topic create opdracht waarop --enable-duplicate-detection deze is ingesteld true.

az servicebus topic create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name mytopic \
    --enable-duplicate-detection true \
    --duplicate-detection-history-time-window P1D

In de bovenstaande voorbeelden wordt ook de grootte van het venster voor dubbele detectie ingesteld met behulp van de --duplicate-detection-history-time-window parameter. De venstergrootte is ingesteld op één dag. De standaardwaarde is 10 minuten en de maximaal toegestane waarde is zeven dagen.

Als u een wachtrij wilt bijwerken met een nieuwe detectievenstergrootte, gebruikt u de az servicebus queue update opdracht met de --duplicate-detection-history-time-window parameter. In dit voorbeeld wordt de venstergrootte bijgewerkt naar zeven dagen.

az servicebus queue update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --duplicate-detection-history-time-window P7D

Als u een onderwerp wilt bijwerken met een nieuwe grootte van het detectievenster, gebruikt u de az servicebus topic update opdracht met de --duplicate-detection-history-time-window parameter. In dit voorbeeld wordt de venstergrootte bijgewerkt naar zeven dagen.

az servicebus topic update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --duplicate-detection-history-time-window P7D

Azure PowerShell gebruiken

Als u een wachtrij wilt maken waarvoor dubbele detectie is ingeschakeld, gebruikt u de New-AzServiceBusQueue opdracht die -RequiresDuplicateDetection is ingesteld op $True.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -RequiresDuplicateDetection $True `
    -DuplicateDetectionHistoryTimeWindow P1D

Als u een onderwerp wilt maken waarvoor dubbele detectie is ingeschakeld, gebruikt u de New-AzServiceBusTopic opdracht waarop -RequiresDuplicateDetection deze is ingesteld true.

New-AzServiceBusTopic -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -RequiresDuplicateDetection $True
    -DuplicateDetectionHistoryTimeWindow P1D

In de bovenstaande voorbeelden wordt ook de grootte van het venster voor dubbele detectie ingesteld met behulp van de -DuplicateDetectionHistoryTimeWindow parameter. De venstergrootte is ingesteld op één dag. De standaardwaarde is 10 minuten en de maximaal toegestane waarde is zeven dagen.

Zie het volgende voorbeeld om een wachtrij bij te werken met een nieuwe detectievenstergrootte. In dit voorbeeld wordt de venstergrootte bijgewerkt naar zeven dagen.

$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue 

$queue.DuplicateDetectionHistoryTimeWindow='P7D'

Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -QueueObj $queue

Zie het volgende voorbeeld om een onderwerp bij te werken met een nieuwe grootte van het detectievenster. In dit voorbeeld wordt de venstergrootte bijgewerkt naar zeven dagen.

$topic=Get-AzServiceBusTopic -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic

$topic.DuplicateDetectionHistoryTimeWindow='P7D'

Set-AzServiceBusTopic -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -TopicObj $topic

Azure Resource Manager-sjabloon gebruiken

Als u een wachtrij wilt maken waarvoor dubbele detectie is ingeschakeld, stelt u deze in requiresDuplicateDetection true de sectie Wachtrijeigenschappen in. Zie de sjabloonreferenties voor Microsoft.ServiceBus-naamruimten/wachtrijen voor meer informatie. Geef een waarde op voor de duplicateDetectionHistoryTimeWindow eigenschap om de grootte van het venster voor dubbele detectie in te stellen. In het volgende voorbeeld is deze ingesteld op één 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"
          }
        }
      ]
    }
  ]
}

Als u een onderwerp wilt maken waarvoor dubbele detectie is ingeschakeld, stelt u deze in requiresDuplicateDetection true de sectie onderwerpeigenschappen in. Zie de naslaginformatie over microsoft.ServiceBus-naamruimten/onderwerpen voor meer informatie.

{
  "$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"
          }
        }
      ]
    }
  ]
}

Volgende stappen

Probeer de voorbeelden in de taal van uw keuze om Azure Service Bus-functies te verkennen.

Hieronder vindt u voorbeelden voor de oudere .NET- en Java-clientbibliotheken:

Op 30 september 2026 gaan we de Azure Service Bus SDK-bibliotheken WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus en com.microsoft.azure.servicebus buiten gebruik stellen, die niet voldoen aan de Azure SDK-richtlijnen. We beëindigen ook de ondersteuning van het SBMP-protocol, zodat u dit protocol na 30 september 2026 niet meer kunt gebruiken. Migreer naar de nieuwste Azure SDK-bibliotheken, die vóór die datum essentiële beveiligingsupdates en verbeterde mogelijkheden bieden.

Hoewel de oudere bibliotheken nog steeds meer dan 30 september 2026 kunnen worden gebruikt, ontvangen ze geen officiële ondersteuning en updates meer van Microsoft. Zie de aankondiging van de buitengebruikstelling van de ondersteuning voor meer informatie.