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

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

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

注意

  • 可以在高级 SKU 中创建命名空间期间启用分区。
  • 不允许在分区命名空间中创建非分区实体。
  • 不能更改任何现有命名空间中的分区选项。 只能在创建命名空间期间设置分区数。
  • 已分配的消息传送单元数始终是命名空间中分区数量的乘数,并且平均分布在各个分区中。 例如,在具有 16 个 MU 和 4 个分区的命名空间中,将为每个分区分配 4 个 MU。
  • 支持可用性区域的区域中创建分区命名空间时,它会在命名空间上自动启用。
  • 具有较低消息传送单元 (MU) 的多个分区比具有较高 MU 的单个分区性能更好。
  • 使用服务总线异地灾难恢复功能时,请确保不要将分区命名空间与非分区命名空间配对。
  • 无法将标准 SKU 命名空间迁移到高级 SKU 分区命名空间。
  • 目前,分区命名空间不支持 JMS。
  • 此功能目前在所有区域(印度西部除外)中可用。

使用 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 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 服务总线功能。