Compartilhar via


Habilitar particionamento para um namespace Premium do Azure Service Bus

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. Particionamento significa que a taxa de transferência geral de uma entidade particionada não é mais limitada pelo desempenho de um único agente de mensagens. Filas e tópicos particionados podem conter todos os recursos avançados do Service Bus, como suporte para transações e sessões. Para saber mais, confira Tópicos e filas particionados. Este artigo mostra diferentes maneiras de habilitar o particionamento para um namespace Premium do Barramento de Serviço. Todas as entidades nesse namespace serão particionadas.

Observação

  • O particionamento pode ser habilitado durante a criação do namespace no SKU Premium.
  • A criação de entidades não particionadas em um namespace particionado não é permitida.
  • Não é possível alterar a opção de particionamento em qualquer namespace existente. O número de partições só pode ser definido durante a criação do namespace.
  • O número de unidades de mensagens atribuídas é sempre um multiplicador do número de partições em um namespace e são distribuídas igualmente entre as partições. Por exemplo, em um namespace com 16MU e 4 partições, cada partição recebe 4MU.
  • O uso de várias partições com unidades de mensagens mais baixas (MU) oferece um melhor desempenho do que uma única partição com unidades de mensagens mais altas.
  • Ao usar o recurso de recuperação de desastres geográficos do Service Bus, certifique-se de não emparelhar um namespace particionado com um namespace não particionado.
  • Não é possível migrar um namespace de SKU padrão para um namespace particionado de SKU Premium.
  • Atualmente, não há suporte para JMS em namespaces particionados.
  • Não há suporte para mensagens em lote com SessionId ou PartitionKey distintos em namespaces particionados.
  • Esse recurso está atualmente disponível em todas as regiões, exceto Índia Ocidental, Catar Central e Leste da Áustria.

Usar o portal do Azure

Ao criar um namespace no portal do Azure, defina o Particionamento como Habilitado e escolha o número de partições, conforme mostrado na imagem a seguir. Captura de tela em que o particionamento está habilitado no momento da criação do namespace.

Usar a CLI do Azure

Para criar um namespace com particionamento habilitado, use o comando az servicebus namespace create com --premium-messaging-partitions definido como um número maior que 1.

az servicebus namespace create \
    --resource-group myresourcegroup \
    --name mynamespace \
    --location westus 
    --sku Premium
    --premium-messaging-partitions 4

Uso do Azure PowerShell

Para criar um namespace com particionamento habilitado, use o comando New-AzServiceBusNamespace com -PremiumMessagingPartition definido como um número maior que 1.

New-AzServiceBusNamespace -ResourceGroupName myresourcegroup `
    -Name mynamespace `
    -Location westus `
    -PremiumMessagingPartition 4

Usar o modelo do Azure Resource Manager

Para criar um namespace com particionamento habilitado, defina partitions como um número maior que 1 na seção de propriedades do namespace. No exemplo abaixo, um namespace particionado é criado com 4 partições e uma unidade de mensagens atribuída a cada partição. Para obter mais informações, consulte a referência de modelo de namespaces 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"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ServiceBus/namespaces",
      "apiVersion": "2022-10-01-preview",
      "name": "[parameters('serviceBusNamespaceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Premium",
        "capacity": 4
      },
      "properties": {
        "premiumMessagingPartitions": 4
      }
    }
  ]
}

Próximas etapas

Explore os recursos do Barramento de Serviço do Azure usando os exemplos no idioma de sua escolha.