Habilitar a detecção de mensagens duplicadas para uma fila do Barramento de Serviço do Azure ou um tópico
Quando você habilita a detecção de duplicidades para uma fila ou tópico, o Barramento de Serviço do Azure mantém um histórico de todas as mensagens enviadas para a fila ou tópico por um período de tempo de configuração. Durante esse intervalo, sua fila ou tópico não armazenará nenhuma mensagem duplicada. A habilitação dessa propriedade garante a entrega exatamente uma vez por um período de tempo definido pelo usuário. Para saber mais, confira Detecção de duplicidades. Este artigo mostra diferentes maneiras de habilitar a detecção de mensagens duplicadas para uma fila ou um tópico do Barramento de Serviço do Azure.
Observação
- A camada básica do Barramento de Serviço do Azure não dá suporte à detecção de duplicidades. As camadas Standard e Premium dão suporte à detecção de duplicidades. Para conferir as diferenças entre essas camadas, consulte preços do Barramento de Serviço.
- Você não pode ativar nem desativar a detecção de duplicidades após a criação da fila ou tópico. Você só poderá fazer isso no momento da criação da fila ou do tópico.
Usando o Portal do Azure
Ao criar uma fila no portal do Azure, selecione Habilitar a detecção de duplicidades, conforme mostrado na imagem a seguir. Você pode configurar o tamanho da janela de detecção de duplicidades ao criar uma fila ou um tópico.
Ao criar um tópico no portal do Azure, selecione Habilitar a detecção de duplicidades conforme mostrado na imagem a seguir.
Você também poderá definir essa configuração para uma fila ou tópico existente se tiver habilitado a detecção de duplicidades no momento da criação.
Atualizar o tamanho da janela de detecção de duplicidades para uma fila ou um tópico existente
Para alterar o tamanho da janela de detecção de duplicidades de uma fila ou de um tópico existente, na página Visão geral, selecione Alterar para Janela de detecção de duplicidades.
Fila
Tópico
Usando a CLI do Azure
Para criar uma fila com a detecção de duplicidades habilitada, use o comando az servicebus queue create
com --enable-duplicate-detection
definido como true
.
az servicebus queue create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-duplicate-detection true \
--duplicate-detection-history-time-window P1D
Para criar um tópico com a detecção de duplicidades habilitada, use o comando az servicebus topic create
com --enable-duplicate-detection
definido como true
.
az servicebus topic create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name mytopic \
--enable-duplicate-detection true \
--duplicate-detection-history-time-window P1D
Usando o parâmetro --duplicate-detection-history-time-window
, os exemplos acima também definem o tamanho da janela de detecção de duplicidades. O tamanho da janela é definido como um dia. O valor padrão é 10 minutos, e o valor máximo permitido é de sete dias.
Para atualizar uma fila com um novo tamanho de janela de detecção, use o comando az servicebus queue update
com o parâmetro --duplicate-detection-history-time-window
. Neste exemplo, o tamanho da janela é atualizado para sete dias.
az servicebus queue update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--duplicate-detection-history-time-window P7D
De forma semelhante, para atualizar um tópico com um novo tamanho de janela de detecção, use o comando az servicebus topic update
com o parâmetro --duplicate-detection-history-time-window
. Neste exemplo, o tamanho da janela é atualizado para sete dias.
az servicebus topic update \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--duplicate-detection-history-time-window P7D
Usando o PowerShell do Azure
Para criar uma fila com a detecção de duplicidades habilitada, use o comando New-AzServiceBusQueue
com -RequiresDuplicateDetection
definido como $True
.
New-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-RequiresDuplicateDetection $True `
-DuplicateDetectionHistoryTimeWindow P1D
Para criar um tópico com a detecção de duplicidades habilitada, use o comando New-AzServiceBusTopic
com -RequiresDuplicateDetection
definido como true
.
New-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic `
-RequiresDuplicateDetection $True
-DuplicateDetectionHistoryTimeWindow P1D
Usando o parâmetro -DuplicateDetectionHistoryTimeWindow
, os exemplos acima também definem o tamanho da janela de detecção de duplicidades. O tamanho da janela é definido como um dia. O valor padrão é 10 minutos, e o valor máximo permitido é de sete dias.
Para atualizar uma fila com um novo tamanho de janela de detecção, confira o exemplo a seguir. Neste exemplo, o tamanho da janela é atualizado para sete dias.
$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue
$queue.DuplicateDetectionHistoryTimeWindow='P7D'
Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-QueueObj $queue
Para atualizar um tópico com um novo tamanho de janela de detecção, confira o exemplo a seguir. Neste exemplo, o tamanho da janela é atualizado para sete dias.
$topic=Get-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic
$topic.DuplicateDetectionHistoryTimeWindow='P7D'
Set-AzServiceBusTopic -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-Name mytopic `
-TopicObj $topic
Usar o modelo do Azure Resource Manager
Para criar uma fila com a detecção de duplicidades habilitada, defina requiresDuplicateDetection
como true
na seção de propriedades da fila. Para obter mais informações, confira Referência de modelo de namespaces/filas do Microsoft.ServiceBus. Especifique um valor para a propriedade duplicateDetectionHistoryTimeWindow
para definir o tamanho da janela de detecção de duplicidades. No exemplo a seguir, ela é definida como um dia.
{
"$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"
}
}
]
}
]
}
Para criar um tópico com a detecção de duplicidades habilitada, defina requiresDuplicateDetection
como true
na seção de propriedades do tópico. Para obter mais informações, confira Referência de modelo de namespaces/tópicos do 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"
}
}
]
}
]
}
Próximas etapas
Experimente os exemplos no idioma de sua escolha para explorar os recursos do Barramento de Serviço do Azure.
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para .NET (mais recentes)
- Amostras da biblioteca de clientes do Barramento de Serviço do Azure para Java (mais recentes)
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para Python
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para JavaScript
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para TypeScript
Encontre amostras para as bibliotecas de cliente .NET e Java mais antigas abaixo:
- Exemplos da biblioteca de clientes do Barramento de Serviço do Azure para .NET (herdado)
- Amostras da biblioteca de cliente do Barramento de Serviço do Azure para Java (herdado)
Em 30 de setembro de 2026, desativaremos as bibliotecas do SDK do Barramento de Serviço do Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, que não estão em conformidade com as diretrizes do SDK do Azure. Também encerraremos o suporte ao protocolo SBMP, portanto, ele não poderá mais ser usado após 30 de setembro de 2026. Migre para as bibliotecas mais recentes do SDK do Azure, que oferecem atualizações de segurança críticas e recursos aprimorados, antes dessa data.
Embora as bibliotecas mais antigas ainda possam ser usadas após 30 de setembro de 2026, elas não receberão mais suporte e atualizações oficiais da Microsoft. Para obter mais informações, confira o anúncio de desativação do suporte.