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

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

Внимание

Уровень Базовый в Service Bus не поддерживает функцию автоматического перенаправления. Поддержка этой функции осуществляется на уровнях "Стандартный" и "Премиум". За различиями между этими уровнями, смотрите цены на Service Bus.

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

При создании очереди или подписки для темы через портал Azure выберите параметр Пересылать сообщения в очередь/тему, как показано в следующих примерах. Затем укажите, куда вы предпочитаете перенаправлять сообщения — в очередь или раздел. В нашем примере выбран вариант Очередь и указана очередь из того же пространства имен.

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

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

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

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

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

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

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

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

На странице Обзор в вашей подписке на службу Service Bus выберите текущее значение параметра Перенаправить сообщения на. В следующем примере он имеет значение Отключено. В окне 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 

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

Чтобы создать очередь с автоматическим перенаправлением, задайте для forwardTo в разделе параметров очереди имя очереди или топика, в который должны перенаправляться сообщения. Дополнительные сведения см. в справочнике по шаблонам пространств имен/очередей Microsoft.ServiceBus.

@description('Name of the Service Bus namespace')
param serviceBusNamespaceName string

@description('Name of the Queue')
param serviceBusQueueName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: serviceBusNamespaceName
  location: location
  sku: {
    name: 'Standard'
  }

  resource queue 'queues' = {
    name: serviceBusQueueName
    properties: {
      forwardTo: 'myqueue2'
    }
  }
}

Чтобы создать подписку для раздела с включенным автоматическим переадресациям, задайте forwardTo в разделе свойств подписки имя очереди или раздела, в которое нужно перенаправить сообщения. Дополнительные сведения см. в справочнике по шаблонам пространств имен, разделов и подписок Microsoft.ServiceBus.

@description('Name of the Service Bus namespace')
param serviceBusNamespaceName string

@description('Name of the Topic')
param serviceBusTopicName string

@description('Name of the Subscription')
param serviceBusSubscriptionName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: serviceBusNamespaceName
  location: location
  sku: {
    name: 'Standard'
  }

  resource topic 'topics' = {
    name: serviceBusTopicName
    properties: {
      maxSizeInMegabytes: 1024
    }

    resource subscription 'subscriptions' = {
      name: serviceBusSubscriptionName
      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 года, они больше не будут получать официальную поддержку и обновления от Майкрософт. Для получения дополнительной информации см. объявление об окончании поддержки.