Habilitar o particionamento no Barramento de Serviço do Azure Básico ou Standard

As partições do Barramento de Serviço permitem que filas e tópicos, ou entidades de mensagens, sejam particionados entre diversos agentes de mensagens. O particionamento faz com que a taxa de transferência geral de uma entidade particionada não seja mais limitada pelo desempenho de um único agente de mensagens. Além disso, a interrupção temporária em um agente de mensagens, por exemplo, durante uma atualização, não torna uma fila particionada ou um tópico indisponível. Filas e tópicos particionados podem conter todos os recursos avançados do Barramento de Serviço, como o suporte a transações e sessões. Para saber mais, confira Tópicos e filas particionados. 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.

Importante

  • O particionamento está disponível na criação da identidade para todas as filas e tópicos em SKUs Básico ou Standard.
  • Não é possível alterar a opção de particionamento em qualquer fila ou tópico existente. Você só pode definir a opção ao criar uma fila ou um tópico.
  • Em um namespace de camada Standard, você pode criar filas e tópicos do Barramento de Serviço em tamanhos de 1, 2, 3, 4 ou 5 GB (o padrão é 1 GB). Com o particionamento habilitado, o Barramento de Serviço criará 16 cópias (16 partições) da entidade, cada uma com o mesmo tamanho especificado. Desse modo, caso crie uma fila com um tamanho de 5 GB e 16 partições, o tamanho máximo da fila será (5 x 16) = 80 GB.

Usar o portal do Azure

Ao criar uma fila no portal do Azure, selecione Habilitar particionamento, conforme mostrado na imagem a seguir.

Enable partitioning at the time of the queue creation

Ao criar um tópico no portal do Azure, selecione Habilitar particionamento, conforme mostrado na imagem a seguir.

Enable partitioning at the time of the topic creation

Usar a CLI do Azure

Para criar uma fila com o particionamento habilitado, use o comando az servicebus queue create com --enable-partitioning definido como true.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-partitioning true

Para criar um tópico com o particionamento habilitado, use o comando az servicebus topic create com --enable-partitioning definido como true.

az servicebus topic create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name mytopic \
    --enable-partitioning true

Usar PowerShell do Azure

Para criar uma fila com o particionamento habilitado, use o comando New-AzServiceBusQueue com -EnablePartitioning definido como $True.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -EnablePartitioning $True

Para criar um tópico com o particionamento habilitado, use o comando New-AzServiceBusTopic com -EnablePartitioning definido como true.

New-AzServiceBusTopic -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -EnablePartitioning $True

Usar o modelo do Azure Resource Manager

Para criar uma fila com o particionamento habilitado, defina enablePartitioning 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.

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

Para criar um tópico com a detecção de duplicidades habilitada, defina enablePartitioning 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": {
            "enablePartitioning": true
          }
        }
      ]
    }
  ]
}

Próximas etapas

Experimente os exemplos no idioma de sua escolha para explorar os recursos do Barramento de Serviço do Azure.

Encontre amostras para as bibliotecas de cliente .NET e Java mais antigas abaixo:

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. Antes dessa data, migre para as bibliotecas mais recentes do SDK do Azure, que oferecem atualizações de segurança críticas e funcionalidades aprimoradas.

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.