Поделиться через


Включение секционирования в Служебная шина Azure базовой или стандартной

служебная шина секции позволяют секционировать очереди и разделы или сущности обмена сообщениями между несколькими брокерами сообщений. Секционирование означает, что общая пропускная способность секционированной сущности больше не ограничивается производительностью одного брокера сообщений. Кроме того, временный сбой брокера сообщений, например во время обновления, не отображает секционированную очередь или раздел недоступным. Секционированные очереди и разделы могут предоставлять все расширенные функции служебной шины, в том числе поддержку транзакций и сеансов. Дополнительные сведения см. в разделах секционированных очередей и разделов. В этой статье описаны разные способы настройки обнаружения повторяющихся сообщений в очереди или разделе Служебной шины.

Важно!

  • Секционирование доступно при создании сущностей для всех очередей и разделов в номерах SKU "Базовый" или "Стандартный".
  • Параметр секционирования существующей очереди или раздела нельзя изменить. Его можно задать только при создании очереди или раздела.
  • В пространстве имен уровня Стандартный можно создавать очереди и разделы служебной шины размером в 1, 2, 3, 4 или 5 ГБ (по умолчанию — 1 ГБ). При включении секционирования служебная шина создает 16 копий (16 секций) сущности одинакового заданного размера. Поэтому при создании очереди размером 5 ГБ с 16 разделами максимальный размер очереди составит 80 ГБ (5 × 16).

Использование портала Azure

При создании очереди на портале Azure выберите Включить секционирование, как показано на изображении ниже.

Enable partitioning at the time of the queue creation

При создании раздела на портале Azure выберите Включить секционирование, как показано на изображении ниже.

Enable partitioning at the time of the topic creation

Использование Azure CLI

Чтобы создать очередь с включенным секционированием, выполните команду az servicebus queue create, указав для параметра --enable-partitioning значение true.

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

Чтобы создать раздел с включенным секционированием, выполните команду az servicebus topic create, указав для параметра --enable-partitioning значение true.

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

Использование Azure PowerShell

Чтобы создать очередь с включенным секционированием, выполните команду New-AzServiceBusQueue, указав для параметра -EnablePartitioning значение $True.

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

Чтобы создать раздел с включенным секционированием, выполните команду New-AzServiceBusTopic, указав для параметра -EnablePartitioning значение true.

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

Использование шаблона Azure Resource Manager

Чтобы создать очередь с включенным секционированием, в разделе свойств очереди задайте для параметра enablePartitioning значение true. Дополнительные сведения см. в справочнике по шаблонам пространств имен/очередей 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
          }
        }
      ]
    }
  ]
}

Чтобы создать раздел с обнаружением повторений, задайте для параметра enablePartitioning значение true в разделе свойств раздела. Дополнительные сведения см. в справочнике по шаблонам пространств имен и разделов 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
          }
        }
      ]
    }
  ]
}

Следующие шаги

Опробуйте примеры на выбранном языке, чтобы изучить возможности Служебной шины Azure.

Примеры для более ранних клиентских библиотек .NET и Java см. ниже.

30 сентября 2026 г. мы удалим библиотеки пакета SDK Служебная шина Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus и com.microsoft.azure.servicebus, которые не соответствуют рекомендациям по пакету SDK Azure. Мы также завершим поддержку протокола SBMP, поэтому вы больше не сможете использовать этот протокол после 30 сентября 2026 года. Перейдите в последние библиотеки пакета SDK Azure, которые предлагают критически важные обновления системы безопасности и улучшенные возможности до этой даты.

Хотя старые библиотеки по-прежнему могут использоваться после 30 сентября 2026 года, они больше не будут получать официальную поддержку и обновления от Майкрософт. Дополнительные сведения см. в объявлении о выходе на пенсию в службу поддержки.