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

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

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

注意

  • 可以在高级 SKU 中创建命名空间期间启用分区。
  • 不允许在分区命名空间中创建非分区实体。
  • 不能更改任何现有命名空间中的分区选项。 只能在创建命名空间期间设置分区数。
  • 已分配的消息传送单元数始终是命名空间中分区数量的乘数,并且平均分布在各个分区中。 例如,在具有 16 个 MU 和 4 个分区的命名空间中,将为每个分区分配 4 个 MU。
  • 支持可用性区域的区域中创建分区命名空间时,它会在命名空间上自动启用。
  • 具有较低消息传送单元 (MU) 的多个分区比具有较高 MU 的单个分区性能更好。
  • 使用服务总线异地灾难恢复功能时,请确保不要将分区命名空间与非分区命名空间配对。
  • 无法将标准 SKU 命名空间迁移到高级 SKU 分区命名空间。
  • 目前,分区命名空间不支持 JMS。
  • 此功能目前在以下区域提供。 新区域将定期添加,我们将在有最新可用区域时更新本文。
区域 区域 区域 区域 区域
澳大利亚中部 东亚 JioIndiaCentral 美国中南部 阿拉伯联合酋长国北部
澳大利亚东部 美国东部 JioIndiaWest 印度南部 UAECentral
澳大利亚东南部 美国东部 2 EUAP KoreaSouth SouthAfricaNorth 英国南部
AustraliaCentral2 法国中部 马来西亚南部 SouthAfricaWest 英国西部
巴西东南部 FranceSouth 墨西哥中部 SouthEastAsia 美国中西部
加拿大中部 德国中西部 美国中北部 西班牙中部 西欧
加拿大东部 GermanyNorth 北欧 SwedenCentral 美国西部
印度中部 以色列中部 挪威东部 SwedenSouth 美国西部 3
美国中部 意大利北部 NorwayWest 瑞士北部
CentralUsEuap 日本西部 波兰中部 瑞士西部

使用 Azure 门户

在 Azure 门户中创建“命名空间”时,将“分区”设置为“已启用”并选择分区数,如下图所示。 Screenshot of screen where partitioning is enabled at the time of the namespace creation.

使用 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 Resource Manager 模板

要创建启用了分区的命名空间,请在命名空间属性部分将 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 服务总线功能。