Bir kuyruk veya konu başlığı Azure Service Bus yinelenen ileti algılamayı etkinleştirme

Bir kuyruk veya konu başlığı için yinelenen algılamayı etkinleştir Azure Service Bus, kuyruğa veya konuya gönderilen tüm iletilerin geçmişini yapılandırma süresi boyunca tutar. Bu süre boyunca kuyruğun veya konu başlığın hiçbir yinelenen ileti depolamaz. Bu özelliğin etkinleştirilmesi, kullanıcı tanımlı bir zaman aralığı içinde tam olarak bir kez teslimi garantiler. Daha fazla bilgi için bkz. Yinelenen algılama. Bu makalede, bir kuyruk veya konu başlığı için yinelenen ileti algılamayı Service Bus farklı yollar gösterir.

Not

  • Çoğaltmanın temel Service Bus yinelenen algılamayı desteklemez. Standart ve premium katmanlar yinelenen algılamayı destekler. Bu katmanlar arasındaki farklar için bkz. Service Bus fiyatlandırması.
  • Kuyruk veya konu oluşturulduktan sonra yinelenen algılamayı etkinleştiresiniz veya devre dışı bırakabilirsiniz. Bunu yalnızca kuyruk veya konu başlığı oluştururken de yapabiliriz.

Azure portalını kullanma

Aşağıdaki görüntüde gösterildiği gibi Azure portal algılamayı etkinleştir'i seçin. Kuyruk veya konu başlığı oluştururken yinelenen algılama penceresinin boyutunu yapılandırabilirsiniz.

Kuyruk oluşturma sırasında yinelenen algılamayı etkinleştirme

Aşağıdaki görüntüde gösterildiği gibi Azure portal algılamayı etkinleştir'i seçin.

Konu başlığı oluşturma sırasında yinelenen algılamayı etkinleştirme

Oluşturma sırasında yinelenen algılamayı etkinleştirdiyseniz bu ayarı mevcut bir kuyruk veya konu için de yapılandırabilirsiniz.

Mevcut bir kuyruk veya konu başlığı için yinelenen algılama penceresi boyutunu güncelleştirme

Mevcut bir kuyruk veya konu başlığı için yinelenen algılama penceresi boyutunu değiştirmek için Genel Bakış sayfasında Yinelenen algılama penceresi için Değiştir'i seçin.

Kuyruk

Kuyruk için yinelenen algılama penceresi boyutu ayarlama

Konu

Bir konu için yinelenen algılama penceresi boyutu ayarlama

Azure CLI’yı kullanma

Yinelenen algılama etkin bir kuyruk oluşturmak için komutunu olarak ayarlanmış şekilde az servicebus queue create --enable-duplicate-detection true kullanın.

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

Yinelenen algılama etkin bir konu oluşturmak için komutunu olarak ayarlanmış şekilde az servicebus topic create --enable-duplicate-detection true kullanın.

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

Yukarıdaki örnekler, parametresini kullanarak yinelenen algılama penceresinin boyutunu da --duplicate-detection-history-time-window ayarlamış olur. Pencere boyutu bir gün olarak ayarlanır. Varsayılan değer 10 dakika, izin verilen maksimum değer ise yedi gündür.

Kuyruğu yeni bir algılama penceresi boyutuyla güncelleştirmek için az servicebus queue update parametresiyle komutunu --duplicate-detection-history-time-window kullanın. Bu örnekte pencere boyutu yedi gün olarak güncelleştirilir.

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

Benzer şekilde, bir konuyu yeni bir algılama penceresi boyutuyla güncelleştirmek için az servicebus topic update parametresiyle komutunu --duplicate-detection-history-time-window kullanın. Bu örnekte pencere boyutu yedi gün olarak güncelleştirilir.

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

Azure PowerShell’i kullanma

Yinelenen algılama etkin bir kuyruk oluşturmak için komutunu olarak ayarlanmış şekilde New-AzServiceBusQueue -RequiresDuplicateDetection $True kullanın.

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

Yinelenen algılama etkin bir konu oluşturmak için komutunu olarak ayarlanmış şekilde New-AzServiceBusTopic -RequiresDuplicateDetection true kullanın.

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

Yukarıdaki örnekler, parametresini kullanarak yinelenen algılama penceresinin boyutunu da -DuplicateDetectionHistoryTimeWindow ayarlamış olur. Pencere boyutu bir gün olarak ayarlanır. Varsayılan değer 10 dakika, izin verilen maksimum değer ise yedi gündür.

Bir kuyruğu yeni bir algılama penceresi boyutuyla güncelleştirmek için aşağıdaki örnekle bakın. Bu örnekte pencere boyutu yedi gün olarak güncelleştirilir.

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

$queue.DuplicateDetectionHistoryTimeWindow='P7D'

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

Bir konuyu yeni bir algılama penceresi boyutuyla güncelleştirmek için aşağıdaki örnekle bakın. Bu örnekte pencere boyutu yedi gün olarak güncelleştirilir.

$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 şablonu kullanma

Yinelenen algılama etkin bir kuyruk oluşturmak için, kuyruk özellikleri bölümünde olarak requiresDuplicateDetection true ayarlayın. Daha fazla bilgi için bkz. Microsoft.ServiceBus ad alanları/kuyrukları şablon başvurusu. Yinelenen algılama penceresinin duplicateDetectionHistoryTimeWindow boyutunu ayarlamak için özelliği için bir değer belirtin. Aşağıdaki örnekte, bir güne ayarlanmış.

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

Yinelenen algılama etkin bir konu oluşturmak için konu özellikleri bölümünde olarak requiresDuplicateDetection true ayarlayın. Daha fazla bilgi için bkz. Microsoft.ServiceBus ad alanları/konu şablonu başvurusu.

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

Sonraki adımlar

Diğer özellikleri keşfetmek için örnekleri tercih Azure Service Bus deneyin.

Eski .NET ve Java istemci kitaplıkları için örnekleri aşağıda bulabilirsiniz: