Activer la détection des messages dupliqués pour une file d’attente ou une rubrique Azure Service Bus

Lorsque vous activez la détection des doublons pour une file d’attente ou une rubrique, Azure Service Bus conserve un historique de tous les messages envoyés à la file d’attente ou à la rubrique pendant une durée configurable. Pendant cet intervalle, votre file d’attente ou votre rubrique ne stockera pas de messages en double. L’activation de cette propriété garantit une livraison unique sur une période de temps définie par l’utilisateur. Pour en savoir plus, consultez Détection des doublons. Cet article vous montre différentes façons d’activer la détection des messages dupliqués pour une file d’attente ou une rubrique Service Bus.

Notes

  • Le niveau De base de Service Bus ne prend pas en charge la détection des doublons. Les niveaux Standard et Premium prennent en charge la détection des doublons. Pour connaître les différences entre ces niveaux, voir Tarification de Service Bus.
  • Vous ne pouvez pas activer ou désactiver la détection des doublons après la création de la file d’attente ou de la rubrique. Vous ne pouvez le faire qu’au moment de la création de la file d’attente ou de la rubrique.

En passant par le portail Azure

Lorsque vous créez une file d’attente dans le portail Azure, sélectionnez Activer la détection des doublons comme indiqué dans l’image suivante. Vous pouvez configurer la taille de la fenêtre de détection des doublons lors de la création d’une file d’attente ou d’une rubrique.

Enable duplicate detection at the time of the queue creation

Lorsque vous créez une rubrique dans le portail Azure, sélectionnez Activer la détection des doublons comme indiqué dans l’image suivante.

Enable duplicate detection at the time of the topic creation

Vous pouvez également configurer ce paramètre pour une file d’attente ou une rubrique existante si vous aviez activé la détection des doublons au moment de la création.

Mettre à jour la taille de la fenêtre de détection des doublons pour une file d’attente ou une rubrique existante

Pour modifier la taille de la fenêtre de détection des doublons pour une file d’attente ou une rubrique existante, dans la page Vue d’ensemble, sélectionnez Modifier pour Fenêtre de détection des doublons.

File d'attente

Set duplicate detection window size for a queue

Rubrique

Set duplicate detection window size for a topic

Utilisation de l’interface de ligne de commande Azure

Pour créer une file d’attente avec la détection des doublons activée, utilisez la commande az servicebus queue create avec --enable-duplicate-detection défini sur true.

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

Pour créer une rubrique avec la détection des doublons activée, utilisez la commande az servicebus topic create avec --enable-duplicate-detection défini sur true.

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

Les exemples ci-dessus définissent également la taille de la fenêtre de détection des doublons à l’aide du paramètre --duplicate-detection-history-time-window. La taille de la fenêtre est définie sur un jour. La valeur par défaut est de dix minutes et la valeur maximale autorisée est de sept jours.

Pour mettre à jour une file d’attente avec une nouvelle taille de fenêtre de détection, utilisez la commande az servicebus queue update avec le paramètre --duplicate-detection-history-time-window. Dans cet exemple, la taille de la fenêtre est mise à jour à sept jours.

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

De même, pour mettre à jour une rubrique avec une nouvelle taille de fenêtre de détection, utilisez la commande az servicebus topic update avec le paramètre --duplicate-detection-history-time-window. Dans cet exemple, la taille de la fenêtre est mise à jour à sept jours.

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

Utilisation de Microsoft Azure PowerShell

Pour créer une file d’attente avec la détection des doublons activée, utilisez la commande New-AzServiceBusQueue avec -RequiresDuplicateDetection défini sur $True.

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

Pour créer une rubrique avec la détection des doublons activée, utilisez la commande New-AzServiceBusTopic avec -RequiresDuplicateDetection défini sur true.

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

Les exemples ci-dessus définissent également la taille de la fenêtre de détection des doublons à l’aide du paramètre -DuplicateDetectionHistoryTimeWindow. La taille de la fenêtre est définie sur un jour. La valeur par défaut est de dix minutes et la valeur maximale autorisée est de sept jours.

Pour mettre à jour une file d’attente avec une nouvelle taille de fenêtre de détection, consultez l’exemple suivant. Dans cet exemple, la taille de la fenêtre est mise à jour à sept jours.

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

$queue.DuplicateDetectionHistoryTimeWindow='P7D'

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

Pour mettre à jour une rubrique avec une nouvelle taille de fenêtre de détection, consultez l’exemple suivant. Dans cet exemple, la taille de la fenêtre est mise à jour à sept jours.

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

$topic.DuplicateDetectionHistoryTimeWindow='P7D'

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

Utilisation d’un modèle Azure Resource Manager

Pour créer une file d’attente avec la détection des doublons activée, définissez requiresDuplicateDetection sur true dans la section Propriétés de la file d’attente. Pour plus d’informations, consultez la documentation de référence sur les modèles de files d’attente/espaces de noms Microsoft.ServiceBus. Spécifiez une valeur pour la propriété duplicateDetectionHistoryTimeWindow afin de définir la taille de la fenêtre de détection des doublons. Dans l’exemple suivant, elle est définie sur un jour.

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

Pour créer une rubrique avec la détection des doublons activée, définissez requiresDuplicateDetection sur true dans la section Propriétés de la rubrique. Pour plus d’informations, consultez la documentation de référence sur les modèles de files d’attente/espaces de noms Microsoft.ServiceBus.

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

Étapes suivantes

Essayez les exemples dans le langage de votre choix pour explorer les fonctionnalités d’Azure Service Bus.

Recherchez des exemples pour les anciennes bibliothèques clientes .NET et Java ci-dessous :

Le 30 septembre 2026, nous retirerons les bibliothèques WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus et com.microsoft.azure.servicebus du kit de développement logiciel (SDK) Azure Service Bus, qui ne sont pas conformes aux directives du kit de développement logiciel (SDK) Azure. Nous mettrons également fin à la prise en charge du protocole SBMP. Vous ne pourrez donc plus utiliser ce protocole après le 30 septembre 2026. Migrez vers les dernières bibliothèques du kit de développement logiciel (SDK) Azure, qui offre des correctifs de sécurité critiques et des fonctionnalités améliorées, avant cette date.

Bien que les anciennes bibliothèques puissent toujours être utilisées au-delà du 30 septembre 2026, elles ne seront plus prises en charge officiellement et mises à jour par Microsoft. Pour plus d’informations, consultez l’annonce concernant l’arrêt de la prise en charge.