Включение автоматического перенаправления для подписок и очередей Служебной шины 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.
- Примеры для клиентской библиотеки Служебной шины Azure для .NET (последняя версия)
- Примеры для клиентской библиотеки Служебной шины Azure для Java (последняя версия)
- Примеры для клиентской библиотеки Служебной шины Azure для Python
- Примеры для клиентской библиотеки Служебной шины Azure для JavaScript
- Примеры для клиентской библиотеки Служебной шины Azure для TypeScript
Найдите примеры для старых клиентских библиотек .NET и Java:
- Примеры для клиентской библиотеки Служебной шины Azure для .NET (прежние версии)
- Примеры для клиентской библиотеки Служебной шины Azure для Java (прежние версии)
30 сентября 2026 г. мы удалим библиотеки пакета SDK Служебная шина Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus и com.microsoft.azure.servicebus, которые не соответствуют рекомендациям по пакету SDK Azure. Мы также завершим поддержку протокола SBMP, поэтому вы больше не сможете использовать этот протокол после 30 сентября 2026 года. Перейдите в последние библиотеки пакета SDK Azure, которые предлагают критически важные обновления системы безопасности и улучшенные возможности до этой даты.
Хотя старые библиотеки по-прежнему могут использоваться после 30 сентября 2026 года, они больше не будут получать официальную поддержку и обновления от Майкрософт. Дополнительные сведения см. в объявлении о выходе на пенсию в службу поддержки.