Объединение в цепочки сущностей служебной шины с помощью автоматической переадресации
Функция автоматической переадресации служебной шины позволяет привязать очередь или подписку к другой очереди или разделу, которые являются частью одного и того же пространства имен. Если включена автоматическая переадресация, служебная шина автоматически удаляет сообщения, помещенные в первую очередь или подписку (источник), и помещает их во вторую очередь или раздел (место назначения). При этом сохраняется возможность отправить сообщение напрямую в целевую сущность.
Примечание.
Уровень "Базовый" Служебной шины не поддерживает функцию автоматического перенаправления. Различия между этими ценовыми категориями приведены на странице цен на Служебную шину.
Конечная сущность должна существовать на момент создания исходной сущности. Если конечной сущности не существует, служебная шина возвращает исключение при попытке создать исходную сущность.
Сценарии
Горизонтальное увеличение масштаба отдельного раздела
С помощью автоматической переадресации можно горизонтально увеличить масштаб отдельного раздела. Служебная шина ограничивает количество подписок на определенный раздел до 2000. Вы можете разместить больше подписок, создав разделы второго уровня. Даже при отсутствии ограничения служебной шины на количество подписок, добавление разделов второго уровня может повысить общую пропускную способность раздела.
Отделение отправителей сообщений от получателей
С помощью автоматической переадресации также можно разделить отправителей и получателей сообщений. Например, рассмотрим систему планирования ресурсов предприятия (ERP), состоящую из трех модулей: обработка заказов, управление инвентаризацией и управление отношениями с клиентами. Каждый из этих модулей создает сообщения, передаваемые в очередь в соответствующем разделе. Алиса и Роберт — торговые представители, которых интересуют все сообщения, относящиеся к своим клиентам. Для получения этих сообщений Алиса и Боб создают персональные очереди и подписки в каждом из разделов ERP, которые автоматически пересылают все сообщения в их очереди.
Если Алиса уйдет в отпуск, то заполнится ее личная очередь, а не очередь раздела ERP. В этом сценарии ни один из разделов ERP не достигнет выделенной квоты, так как торговый представитель не получил ни одного сообщения.
Примечание.
При установке автоматической переадресации значение для AutoDeleteOnIdle
в исходной сущности автоматически устанавливается равным максимальному значению типа данных.
- На стороне источника автоматическая переадресация действует как операция приема, поэтому источник, для которого включена автоматическая переадресация, никогда не бывает "бездействующим" и, следовательно, не будет автоматически удален.
- Автоматическая переадресация не вносит никаких изменений в конечную сущность. Если
AutoDeleteOnIdle
включен для конечной сущность, эта сущность автоматически удаляется, если он будет неактивен в течение указанного интервала простоя. Рекомендуется не включитьAutoDeleteOnIdle
для конечной сущности, так как при удалении конечной сущности исходная сущность будет постоянно видеть исключения при попытке пересылать сообщения, которые назначения.
Рекомендации по автоматической переадресации
- служебная шина не позволяет создавать приемник сообщений в исходной сущности с включенной автоматической настройкой.
- Если целевая сущность накапливает слишком много сообщений и превышает квоту или целевая сущность отключена, то исходная сущность добавляет сообщения в очередь недоставленных сообщений до тех пор, пока в целевой сущности не появится место (или пока целевая сущность не будет снова включена). Эти сообщения будут находиться в очереди недоставленных сообщений, поэтому необходимо явным образом получать и обрабатывать их из этой очереди.
- При объединении в цепочку отдельных разделов для получения составного раздела с несколькими подписками рекомендуется сократить количество подписок на раздел первого уровня до умеренного и увеличить количество подписок на разделы второго уровня. Например, раздел первого уровня с 20 подписками, каждая из которых объединена в цепочку с разделом второго уровня с 200 подписками, позволяет получить более высокую пропускную способность по сравнению с разделом первого уровня с 200 подписками, каждая из которых объединена в цепочку с разделом второго уровня с 20 подписками.
- Служебная шина тарифицирует каждое перенаправленное сообщение как одну операцию. Например, отправка сообщения в раздел с 20 подписками, каждая из которых настроена на автоматическую переадресацию сообщений в другую очередь или раздел, тарифицируется как 21 операция, если все подписки первого уровня получили копию сообщения.
- Для создания подписки, привязанной к другой очереди или разделу, создатель подписки должен иметь разрешение на управление как исходной, так и целевой сущностями. Для отправки сообщений в исходный раздел требуется только разрешение на отправку для исходного раздела.
- Не создавайте цепочку, превышающую четыре прыжка. Сообщения, превышающие четыре прыжка, являются недоставленными. Число прыжков сообщения увеличивается при автоматическом подключении сообщения из одной очереди или раздела в другую очередь или раздел. Количество прыжков сообщения также можно увеличить в отправке с помощью сценария, в котором сообщение отправляется через очередь передачи.
- Автоподключение не поддерживается для очередей или подписок с поддержкой сеанса.
- Исходная очередь пытается пересылать сообщения в целевой сущности в том же порядке, что и она получена, но назначение может быть темой, которая не поддерживает упорядочивание. Если исходная или целевая сущность является секционированной сущностью, порядок не гарантируется.
Следующие шаги
Чтобы узнать, как настроить включение и отключение автоматического перенаправления различными способами (портал Azure, PowerShell, CLI, шаблон управления ресурсами Azure и т. д.), см. статью Включение автоматической пересылки для очередей и подписок.