Azure Service Bus kuyruğu veya konu başlığı için yinelenen ileti algılamayı etkinleştirme

Bir kuyruk veya konu için yinelenen algılamayı etkinleştirdiğinizde Azure Service Bus, kuyruğa veya konuya gönderilen tüm iletilerin geçmişini yapılandırma süresi boyunca tutar. Bu aralık boyunca, kuyruğunuz veya konu başlığınız yinelenen iletileri depolamaz. Bu özelliğin etkinleştirilmesi, kullanıcı tanımlı bir süre boyunca tam olarak bir kez teslim edilmesini garanti eder. Daha fazla bilgi için bkz . Yinelenen algılama. Bu makalede, Service Bus kuyruğu veya konu başlığı için yinelenen ileti algılamayı etkinleştirmenin farklı yolları gösterilmektedir.

Dekont

  • Service Bus'ın temel katmanı yinelenen algılamayı desteklemez. Standart ve Premium katmanlar yinelenen öğe 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ştiremez veya devre dışı bırakamazsınız. Bunu yalnızca kuyruk veya konu oluşturulurken yapabilirsiniz.

Azure portalı kullanarak

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

Enable duplicate detection at the time of the queue creation

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

Enable duplicate detection at the time of the topic creation

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

Var olan bir kuyruk veya konu için yinelenen algılama penceresi boyutunu güncelleştirme

Var olan bir kuyruğun veya konunun yinelenen algılama penceresi boyutunu değiştirmek için Genel Bakış sayfasında Yinelenen algılama için değiştir'i seçin.

Kuyruk

Set duplicate detection window size for a queue

Konu

Set duplicate detection window size for a topic

Azure CLI’yı kullanma

Yinelenen algılama etkinleştirilmiş bir kuyruk oluşturmak için olarak ayarlanmış truekomutunu --enable-duplicate-detection kullanınaz servicebus queue create.

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 etkinleştirilmiş bir konu oluşturmak için olarak ayarlanmış truekomutunu --enable-duplicate-detection kullanınaz servicebus topic create.

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 --duplicate-detection-history-time-window boyutunu da ayarlar. Pencere boyutu bir gün olarak ayarlanır. Varsayılan değer 10 dakika ve izin verilen maksimum değer yedi gündür.

Kuyruğu yeni algılama penceresi boyutuyla güncelleştirmek için parametresiyle komutunu --duplicate-detection-history-time-window kullanınaz servicebus queue update. Bu örnekte pencere boyutu yedi güne 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 algılama penceresi boyutuyla güncelleştirmek için parametresiyle --duplicate-detection-history-time-window komutunu kullanınaz servicebus topic update. Bu örnekte pencere boyutu yedi güne 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 etkinleştirilmiş bir kuyruk oluşturmak için olarak ayarlanmış $Truekomutunu -RequiresDuplicateDetection kullanınNew-AzServiceBusQueue.

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

Yinelenen algılama etkinleştirilmiş bir konu oluşturmak için olarak ayarlanmış truekomutunu -RequiresDuplicateDetection kullanınNew-AzServiceBusTopic.

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

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

Kuyruğu yeni bir algılama penceresi boyutuyla güncelleştirmek için aşağıdaki örnlüğe bakın. Bu örnekte pencere boyutu yedi güne 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 algılama penceresi boyutuyla güncelleştirmek için aşağıdaki örnlüğe bakın. Bu örnekte pencere boyutu yedi güne 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 etkinleştirilmiş bir kuyruk oluşturmak için kuyruk özellikleri bölümünde olarak ayarlayın requiresDuplicateDetection true. 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ün olarak ayarlanmıştır.

{
  "$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 ayarlayın requiresDuplicateDetection true. 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

Azure Service Bus özelliklerini keşfetmek için örnekleri istediğiniz dilde deneyin.

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

30 Eylül 2026'da Azure SDK yönergelerine uymayan WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus ve com.microsoft.azure.servicebus Azure Service Bus SDK kitaplıklarını kullanımdan kaldıracağız. Ayrıca SBMP protokolünün desteğini de sonlandıracağız, bu nedenle 30 Eylül 2026'da bu protokolü artık kullanamayacaksınız. Bu tarihten önce kritik güvenlik güncelleştirmeleri ve geliştirilmiş özellikler sunan en son Azure SDK kitaplıklarına geçiş yapın.

Eski kitaplıklar 30 Eylül 2026'dan sonra da kullanılabilir olsa da artık Microsoft'tan resmi destek ve güncelleştirmeler almayacaktır. Daha fazla bilgi için bkz . destek kullanımdan kaldırma duyurusu.