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


Операции регулирования в служебной шине Azure

Собственные облачные решения дают представление о неограниченных ресурсах, которые можно масштабировать с помощью рабочей нагрузки. Хотя это представление более применительно к облаку, чем к локальным системам, в облаке все еще есть некоторые ограничения. Эти ограничения могут привести к регулированию запросов клиентских приложений как на стандартных, так и на уровнях "Премиум", как описано в этой статье.

Регулирование на стандартном уровне

Стандартный уровень служебная шина работает в качестве мультитенантной настройки с моделью ценообразования по мере использования. Здесь несколько пространств имен в одном кластере совместно используют выделенные ресурсы. Уровень "Стандартный" — это рекомендуемый вариант для сред разработчика, сред качества обслуживания и рабочих систем с низкой пропускной способностью.

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

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

Примечание.

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

Регулирование на основе кредитов — это просто уточнение способа совместного использования ресурсов различных пространств имен в среде уровня "Стандартный" с несколькими клиентами и, таким образом, обеспечивая справедливое использование всех пространств имен, совместного использования ресурсов.

Что такое регулирование на основе кредита?

Регулирование на основе кредита ограничивает количество операций, которые могут быть выполнены с заданным пространством имен за определенный период времени. Ниже приведен рабочий процесс регулирования на основе кредитов.

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

Что такое кредитные лимиты?

В настоящее время кредитные лимиты равны 1000 кредитов каждую секунду (на пространство имен). Не все операции созданы на равных условиях. Ниже приведены кредитные затраты на каждую из операций.

Операция Стоимость в кредитах
Операции с данными (Send, , SendAsyncReceive, ) PeekReceiveAsync 1 кредит на одно сообщение
Операции управления (Create, ReadUpdateDelete в очередях, разделах, подписках, фильтрах) 10 кредитов

Примечание.

При отправке в раздел каждое сообщение вычисляется по фильтрам, прежде чем быть доступным в подписке. Каждая оценка фильтра также учитывает кредитный лимит (то есть 1 кредит на оценку фильтра).

Разделы справки знать, что я регулируется?

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

The request was terminated because the entity is being throttled. Error code: 50009. Please wait 2 seconds and try again.

Как избежать регулирования?

При использовании общих ресурсов важно обеспечить справедливое использование в различных пространствах имен служебная шина, которые совместно используют эти ресурсы. Регулирование гарантирует, что любой всплеск в одной рабочей нагрузке не приводит к регулированию других рабочих нагрузок в одних и том же ресурсах. Как упоминание позже в статье, нет риска регулирования, так как клиентские пакеты средств разработки программного обеспечения (SDK) и другие предложения Azure PaaS встроены в политику повторных попыток по умолчанию. Все регулируемые запросы извлекаются с экспоненциальным обратным выходом и в конечном итоге проходят через время пополнения кредитов.

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

Регулирование на уровне "Премиум"

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

Как работает регулирование в служебной шине уровня "Премиум"?

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

Разделы справки знать, что я регулируется?

Существуют различные способы определения регулирования в служебная шина ценовой категории "Премиум".

  • Регулируемые запросы отображаются в метриках запросов в Azure Monitor, благодаря чему можно определить, сколько запросов было ограничено.
  • Высокая загрузка ЦП указывает, что текущее выделение ресурсов является высоким, и запросы могут регулироваться, если текущая рабочая нагрузка не уменьшается.
  • Использование высокой памяти указывает, что текущее выделение ресурсов является высоким, и запросы могут регулироваться, если текущая рабочая нагрузка не уменьшается.

Как избежать регулирования?

Так как служебная шина пространство имен уровня "Премиум" уже имеет выделенные ресурсы, вы можете уменьшить возможность регулирования, масштабируя количество единиц обмена сообщениями, выделенных вашему пространству имен в событии (или ожидании) всплеска рабочей нагрузки. Дополнительные сведения см. в статье Автоматическое обновление единиц обмена сообщениями в пространстве имен Служебная шина Azure.

Вопросы и ответы

Как регулирование влияет на мое приложение?

Если запрос регулируется, это означает, что служба занята, так как она сталкивается с большим числом запросов, чем разрешены ресурсы. Если одна и та же операция повторяется через какое-то время, после того, как служба будет работать через текущую рабочую нагрузку, запрос может быть принят.

Так как регулирование является ожидаемым поведением любой облачной собственной службы, логика повторных попыток встроена в сам пакет SDK служебная шина. Значение по умолчанию — автоматическая повторная попытка с экспоненциальной задержкой, чтобы гарантировать, что это не тот же запрос, который регулируется каждый раз. Логика повторных попыток по умолчанию применяется к каждой операции.

Примечание.

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

Приводит ли регулирование к утрате данных?

Служебная шина Azure оптимизировано для сохраняемости. Мы убедитесь, что все данные, отправленные в служебная шина, зафиксированы в хранилище, прежде чем служба подтверждает успешность запроса.

После успешного подтверждения запроса служебная шина предполагается, что служебная шина успешно обработал запрос. Если служебная шина возвращает сбой, это означает, что служебная шина не удалось обработать запрос, и клиентское приложение должно повторить запрос.

Однако при регулировании запроса служба подразумевает, что она не может принимать и обрабатывать запрос прямо сейчас из-за ограничений ресурсов. Это не означает какой-либо потери данных, так как служебная шина просто не посмотрел на запрос. В этом случае использование политики повторных попыток по умолчанию пакета SDK служебная шина гарантирует, что запрос в конечном итоге обрабатывается.

Дополнительные сведения и примеры использования обмена сообщениями в служебной шине Microsoft Azure см. в следующих дополнительных статьях: