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


Включение автоматического перенаправления для подписок и очередей Служебной шины Azure

Функция автоматического перенаправления в Служебной шине позволяет привязать очередь или подписку к другой очереди или разделу в том же пространстве имен. Если включено автоматическое перенаправление, Служебная шина автоматически удаляет сообщения, помещенные в первую (исходную) очередь или подписку, и помещает их во вторую (целевую) очередь или раздел. При этом сохраняется возможность отправить сообщение напрямую в целевую сущность. Дополнительные сведения см. в статье Объединение в цепочки сущностей Служебной шины с помощью автоматического перенаправления. В этой статье описаны разные способы настройки автоматического перенаправления для очередей и подписок Служебной шины.

Внимание

Уровень "Базовый" Служебной шины не поддерживает функцию автоматического перенаправления. Ею можно воспользоваться только на уровнях "Стандартный" и "Премиум". Различия между этими ценовыми категориями приведены на странице цен на Служебную шину.

Используя портал Azure

При создании очереди или подписки на раздел с помощью портала Azure выберите параметр Forward messages to queue/topic (Перенаправление сообщений в очередь или раздел). Затем укажите, куда вы предпочитаете перенаправлять сообщения — в очередь или раздел. В нашем примере выбран вариант Очередь и указана очередь из того же пространства имен.

Создание очереди с автоматическим перенаправлением

Включение автоматического перенаправления при создании очереди

Создание подписки на раздел с автоматическим перенаправлением

Включение автоматического перенаправления при создании подписки

Изменение параметра автоматического перенаправления для существующей очереди

На странице Обзор для очереди Служебной шины выберите текущее значение параметра Forward messages to (Перенаправление сообщений в...). В следующем примере он имеет значение Отключено. В окне Forward messages to queue/topic (Перенаправление сообщений в очередь или раздел) можно выбрать очередь или раздел, в которые нужно перенаправлять сообщения.

Включение автоматического перенаправления для существующей очереди

Изменение параметра автоматического перенаправления для существующей подписки

На странице Обзор для подписки Служебной шины выберите текущее значение параметра Forward messages to (Перенаправление сообщений в...). В следующем примере он имеет значение Отключено. В окне Forward messages to queue/topic (Перенаправление сообщений в очередь или раздел) можно выбрать очередь или раздел, в которые нужно перенаправлять сообщения.

Включение автоматического перенаправления для существующей подписки

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

Чтобы создать очередь с автоматическим перенаправлением, выполните команду az servicebus queue create, задав для параметра --forward-to значение имени очереди или раздела, в который должны перенаправляться сообщения.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --forward-to myqueue2

Чтобы изменить режим автоматического перенаправления для существующей очереди, выполните команду az servicebus queue update, задав для параметра --forward-to значение имени очереди или раздела, в который должны перенаправляться сообщения.

az servicebus queue update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --forward-to myqueue2

Чтобы создать подписку на раздел с автоматическим перенаправлением, выполните команду az servicebus topic subscription create, задав для параметра --forward-to значение имени очереди или раздела, в который должны перенаправляться сообщения.

az servicebus topic subscription create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --forward-to myqueue2

Чтобы изменить режим автоматического перенаправления для подписки на раздел, выполните команду az servicebus topic subscription update, задав для параметра --forward-to значение имени очереди или раздела, в который должны перенаправляться сообщения.

az servicebus topic subscription update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --forward-to myqueue2

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

Чтобы создать очередь с автоматическим перенаправлением, выполните команду New-AzServiceBusQueue, задав для параметра -ForwardTo значение имени очереди или раздела, в который должны перенаправляться сообщения.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name myqueue `
    -ForwardTo myqueue2

Чтобы изменить режим автоматического перенаправления для существующей очереди, выполните команду Set-AzServiceBusQueue, как показано в следующем примере.

Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name myqueue `
    -ForwardTo myqueue2

Чтобы создать подписку на раздел с автоматическим перенаправлением, выполните команду New-AzServiceBusSubscription, задав для параметра -ForwardTo значение имени очереди или раздела, в который должны перенаправляться сообщения.

New-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -Name mysubscription `
    -ForwardTo myqueue2

Чтобы изменить параметр автоматического перенаправления для существующей подписки, воспользуйтесь следующим примером.

Set-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -Name mysub `
    -ForwardTo mytopic2 

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

Чтобы создать очередь с автоматического перенаправления, задайте для forwardTo в разделе параметров очереди значение имени очереди или раздела, в который должны перенаправляться сообщения. Дополнительные сведения см. в справочнике по шаблонам пространств имен/очередей 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": {
            "forwardTo": "myqueue2"
          }
        }
      ]
    }
  ]
}

Чтобы создать подписку на раздел с автоматическим перенаправлением, задайте для forwardTo в разделе параметров очереди значение имени очереди или раздела, в который должны перенаправляться сообщения. Дополнительные сведения см. в справочнике по шаблонам пространств имен, разделов и подписок 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"
      }
    },
    "serviceBusSubscriptionName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Subscription"
      }
    },
    "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": {
            "maxSizeInMegabytes": 1024
          },
          "resources": [
            {
              "apiVersion": "2017-04-01",
              "name": "[parameters('serviceBusSubscriptionName')]",
              "type": "Subscriptions",
              "dependsOn": [
                "[parameters('serviceBusTopicName')]"
              ],
              "properties": {
                "forwardTo": "myqueue2"
              }
            }
          ]
        }
      ]
    }
  ]
}

.NET

Azure.Messaging.ServiceBus (последняя версия)

Чтобы включить функцию автоматического перенаправления, можно задать CreateQueueOptions.ForwardTo или CreateSubscriptionOptions.ForwardTo, а затем выполнить метод CreateQueueAsync или CreateSubscriptionAsync, которые принимают параметры CreateQueueOptions или CreateSubscriptionOptions.

Microsoft.Azure.ServiceBus (устаревшая версия)

Чтобы включить автоматическое перенаправление, задайте параметр QueueDescription.ForwardTo или SubscriptionDescription.ForwardTo для исходной сущности, как показано в следующем примере:

SubscriptionDescription srcSubscription = new SubscriptionDescription (srcTopic, srcSubscriptionName);
srcSubscription.ForwardTo = destTopic;
namespaceManager.CreateSubscription(srcSubscription));

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

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

Java

azure-messaging-servicebus (последняя версия)

Чтобы включить функцию автоматического перенаправления, примените метод CreateQueueOptions.setForwardTo(String forwardTo) или CreateSubscriptionOptions.setForwardTo(String forwardTo), а затем примените метод createQueue или createSubscription, которые принимают параметры CreateQueueOptions или CreateSubscriptionOptions.

azure-servicebus (устаревшая версия)

Чтобы включить автоматическое перенаправление, примените QueueDescription.setForwardTo(String forwardTo) или SubscriptionDescription.setForwardTo(String forwardTo) для исходной сущности.

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

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

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

Опробуйте примеры на выбранном языке, чтобы изучить возможности Служебной шины 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 года, они больше не будут получать официальную поддержку и обновления от Майкрософт. Дополнительные сведения см. в объявлении о выходе на пенсию в службу поддержки.