Freigeben über


Aktivieren der Erkennung doppelter Nachrichten für eine Azure Service Bus-Warteschlange oder ein Thema

Wenn Sie die Duplikaterkennung für eine Warteschlange oder ein Thema aktivieren, speichert Azure Service Bus einen Verlauf aller Nachrichten, die an die Warteschlange oder das Thema gesendet werden, für einen konfigurierten Zeitraum. In diesem Intervall werden in der Warteschlange oder dem Thema keine doppelten Nachrichten gespeichert. Wenn Sie diese Eigenschaft aktivieren, wird die Übermittlung genau einmal über einen benutzerdefinierten Zeitraum garantiert. Weitere Informationen finden Sie unter Duplikaterkennung. In diesem Artikel werden verschiedene Möglichkeiten zum Aktivieren der Erkennung doppelter Nachrichten für eine Service Bus-Warteschlange oder ein Thema beschrieben.

Hinweis

  • Der Basic-Tarif von Service Bus unterstützt keine Duplikaterkennung. Die Standard- und Premium-Tarife unterstützen Duplikaterkennung. Informationen zu den Unterschieden zwischen diesen Tarifen finden Sie unter Service Bus-Preise.
  • Sie können die Duplikaterkennung nach der Erstellung der Warteschlange oder des Themas nicht aktivieren oder deaktivieren. Dies ist nur zum Zeitpunkt der Erstellung der Warteschlange oder des Themas möglich.

Verwenden des Azure-Portals

Wenn Sie eine Warteschlange im Azure-Portal erstellen, wählen Sie Duplikaterkennung aktivieren aus, wie in der folgenden Abbildung dargestellt. Sie können die Größe des Duplikaterkennungsfensters beim Erstellen einer Warteschlange oder eines Themas konfigurieren.

Enable duplicate detection at the time of the queue creation

Wenn Sie ein Thema im Azure-Portal erstellen, wählen Sie Duplikaterkennung aktivieren aus, wie in der folgenden Abbildung dargestellt.

Enable duplicate detection at the time of the topic creation

Sie können diese Einstellung auch für eine vorhandene Warteschlange oder ein vorhandenes Thema konfigurieren, wenn Sie zum Zeitpunkt der Erstellung die Duplikaterkennung aktiviert haben.

Aktualisieren der Fenstergröße für die Duplikaterkennung für eine vorhandene Warteschlange oder ein Thema

Um die Größe des Duplikaterkennungsfensters für eine vorhandene Warteschlange oder ein Thema zu ändern, wählen Sie auf der Übersichtsseite die Option Ändern für Duplikaterkennungsfenster aus.

Warteschlange

Set duplicate detection window size for a queue

Thema

Set duplicate detection window size for a topic

Verwenden der Azure-Befehlszeilenschnittstelle

Um eine Warteschlange mit aktivierter Duplikaterkennungzu erstellen, verwenden Sie den az servicebus queue create-Befehl , bei dem --enable-duplicate-detection auf true festgelegt ist.

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

Um ein Thema mit aktivierter Duplikaterkennungzu erstellen, verwenden Sie den az servicebus topic create-Befehl , bei dem --enable-duplicate-detection auf true festgelegt ist.

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

In den obigen Beispielen wird auch die Größe des Duplikaterkennungsfensters mithilfe des --duplicate-detection-history-time-window-Parameters festgelegt. Die Fenstergröße ist auf einen Tag festgelegt. Der Standardwert beträgt 10 Minuten, und der maximal zulässige Wert beträgt sieben Tage.

Um eine Warteschlange mit einer neuen Erkennungsfenstergrößez u aktualisieren, verwenden Sie den az servicebus queue update-Befehl mit dem --duplicate-detection-history-time-window-Parameter. In diesem Beispiel wird die Fenstergröße auf sieben Tage aktualisiert.

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

Ähnlich wie beim Vorgang eine Warteschlange mit einer neuen Erkennungsfenstergröße aktualisieren, verwenden Sie den az servicebus topic update-Befehl mit dem --duplicate-detection-history-time-window-Parameter. In diesem Beispiel wird die Fenstergröße auf sieben Tage aktualisiert.

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

Verwenden von Azure PowerShell

Um eine Warteschlange mit aktivierter Duplikaterkennungzu erstellen, verwenden Sie den New-AzServiceBusQueue-Befehl , bei dem -RequiresDuplicateDetection auf $True festgelegt ist.

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

Um ein Thema mit aktivierter Duplikaterkennungzu erstellen, verwenden Sie den New-AzServiceBusTopic-Befehl , bei dem -RequiresDuplicateDetection auf true festgelegt ist.

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

In den obigen Beispielen wird auch die Größe des Duplikaterkennungsfensters mithilfe des -DuplicateDetectionHistoryTimeWindow-Parameters festgelegt. Die Fenstergröße ist auf einen Tag festgelegt. Der Standardwert beträgt 10 Minuten, und der maximal zulässige Wert beträgt sieben Tage.

Informationen zum eine Warteschlange mit einer neuen Erkennungsfenstergröße aktualisieren finden Sie im folgenden Beispiel. In diesem Beispiel wird die Fenstergröße auf sieben Tage aktualisiert.

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

$queue.DuplicateDetectionHistoryTimeWindow='P7D'

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

Informationen zum ein Thema mit einer neuen Erkennungsfenstergröße aktualisieren finden Sie im folgenden Beispiel. In diesem Beispiel wird die Fenstergröße auf sieben Tage aktualisiert.

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

$topic.DuplicateDetectionHistoryTimeWindow='P7D'

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

Verwenden von Azure Resource Manager-Vorlagen

Um eine Warteschlange mit aktivierter Duplikaterkennung zu erstellen, stellen Sie im Abschnitt Warteschlangeneigenschaften requiresDuplicateDetection auf true. Weitere Informationen finden Sie unter Microsoft.ServiceBus namespaces/queues template reference. Geben Sie einen Wert für die duplicateDetectionHistoryTimeWindow-Eigenschaft an, um die Größe des Duplikaterkennungsfensters festzulegen. Im folgenden Beispiel ist sie auf einen Tag festgelegt.

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

Um ein Thema mit aktivierter Duplikaterkennung zu erstellen, stellen Sie im Abschnitt Themeneigenschaften requiresDuplicateDetection auf true. Weitere Informationen finden Sie unter 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"
          }
        }
      ]
    }
  ]
}

Nächste Schritte

Sehen Sie sich die Beispiele in der Sprache Ihrer Wahl an, um Azure Service Bus-Features zu untersuchen.

Hier finden Sie Beispiele für die älteren .NET- und Java-Clientbibliotheken:

Am 30. September 2026 werden die Azure Service Bus SDK-Bibliotheken „WindowsAzure.ServiceBus“, „Microsoft.Azure.ServiceBus“ und „com.microsoft.azure.servicebus“ eingestellt, da sie nicht den Azure SDK-Richtlinien entsprechen. Außerdem wird die Unterstützung des SBMP-Protokolls beendet, sodass Sie dieses Protokoll nach dem 30. September 2026 nicht mehr verwenden können. Migrieren Sie vor diesem Datum zu den neuesten Azure SDK-Bibliotheken, die wichtige Sicherheitsupdates und verbesserte Funktionen bieten.

Obwohl die älteren Bibliotheken noch über den 30. September 2026 hinaus verwendet werden können, erhalten sie keinen offiziellen Support und keine Updates mehr von Microsoft. Weitere Informationen finden Sie in der Ankündigung der Supporteinstellung.