你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure 服务总线高级命名空间启用分区

服务总线分区允许跨多个消息中转站对队列和主题或消息实体进行分区。 分区意味着分区实体的总体吞吐量不再受单个消息中转站的性能限制。 分区队列和主题可以包含所有高级服务总线功能,例如对事务和会话的支持。 有关详细信息,请参阅 分区队列和主题。 本文介绍了为服务总线高级命名空间启用分区的不同方法。 此命名空间中的所有实体都将分区。

注释

  • 可以在高级 SKU 中创建命名空间期间启用分区。
  • 不允许在分区命名空间中创建非分区实体。
  • 无法更改任何现有命名空间上的分区选项。 只能在创建命名空间期间设置分区数。
  • 分配的消息单元数始终是命名空间中分区数的乘数,并且平均分布在分区之间。 例如,在具有 16MU 和 4 个分区的命名空间中,为每个分区分配 4MU。
  • 使用具有较低消息传送单元的多个分区(MU)可让你在具有较高 OU 的单个分区上获得更好的性能。
  • 使用服务总线 异地灾难恢复 功能时,请确保不要将分区命名空间与非分区命名空间配对。
  • 无法将标准 SKU 命名空间 迁移到 高级 SKU 分区命名空间。
  • 分区命名空间目前不支持 JMS。
  • 分区命名空间不支持对具有不同 SessionId 或 PartitionKey 的消息进行批处理。
  • 此功能目前在印度西部、卡塔尔中部和奥地利东部以外的所有区域可用。

使用 Azure 门户

在 Azure 门户中创建 命名空间 时,将 分区 设置为 “已启用” 并选择分区数,如下图所示。 创建命名空间时启用分区的屏幕屏幕截图。

使用 Azure CLI

若要 创建启用了分区的命名空间,请使用命令 az servicebus namespace create,并将 --premium-messaging-partitions 设置为大于 1 的数字。

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

使用 Azure PowerShell

若要 创建启用了分区的命名空间,请使用命令 New-AzServiceBusNamespace,并将 -PremiumMessagingPartition 设置为大于 1 的数字。

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

使用 Azure 资源管理器模板

若要 创建启用了分区的命名空间,请在命名空间属性部分中设置为 partitions 大于 1 的数字。 在下面的示例中,创建了分区命名空间,其中包含 4 个分区,以及分配给每个分区的 1 个消息传送单元。 有关详细信息,请参阅 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
      }
    }
  ]
}

后续步骤

使用所选语言的示例浏览 Azure 服务总线功能。