Служебная шина и надежность

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

Доступные преимущества:

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

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

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

Представленные ниже разделы связаны со Служебной шиной Azure и обеспечением надежности:

  • Рекомендации по проектированию
  • Контрольный список для настройки
  • Рекомендуемые параметры конфигурации
  • Артефакты источника

Рекомендации по проектированию

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

Дополнительные рекомендации по проектированию:

Кроме документации по уровням обмена сообщениями "Премиум" и "Стандартный" в службе "Служебная шина", следующие функции доступны только в номере SKU уровня "Премиум":

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

Контрольный список

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

  • Оцените преимущества Служебная шина Azure уровня "Премиум".
  • Убедитесь, что исключения обмена сообщениями Служебной шины обрабатываются правильно.
  • Подключитесь к Служебной шине с помощью Расширенного протокола управления очередью сообщений (AMQP) и используйте конечные точки службы или частные конечные точки по мере возможности.
  • Ознакомьтесь с разделом Рекомендации по повышению производительности с помощью обмена сообщениями через Служебную шину.
  • Реализуйте георепликацию на стороне отправителя и получателя, чтобы защититься от сбоев и аварийных ситуаций.
  • Настройте геоизбыточное аварийное восстановление.
  • Если вам требуется критически важная система обмена сообщениями с очередями и разделами, рекомендуется использовать Служебную шину уровня "Премиум" с геоизбыточным аварийным восстановлением.
  • Настройте избыточность между зонами в пространстве имен Служебной шины (доступно только на уровне "Премиум").
  • Реализуйте высокий уровень доступности для пространства имен Служебной шины.
  • Убедитесь, что связанные сообщения гарантированно доставляются в нужном порядке.
  • Оцените различные возможности службы обмена сообщениями Java Messaging Service (JMS) с помощью API JMS.
  • Используйте пакеты Nuget для .NET, чтобы взаимодействовать с сущностями обмена сообщениями Служебной шины.
  • Реализуйте устойчивость для обработки временных сбоев при отправке или получении сообщений.
  • Реализуйте автоматическое масштабирование единиц обмена сообщениями.

Рекомендации по настройке

При настройке Служебной шины Azure примите во внимание следующие рекомендации по оптимизации надежности:

Рекомендация Описание
Оцените преимущества Служебная шина Azure уровня "Премиум". Рассмотрите возможность перехода на уровень "Премиум" Служебной шины, чтобы воспользоваться преимуществами защиты от сбоев и аварийных ситуаций, поддерживаемой платформой.
Подключитесь к Служебной шине с помощью протокола AMQP и используйте конечные точки службы или частные конечные точки по мере возможности. Эта рекомендация позволяет передавать трафик в пределах магистральной сети Azure. Примечание. Протоколом подключения по умолчанию для пространств имен Microsoft.Azure.ServiceBus и Windows.Azure.ServiceBus является AMQP.
Реализуйте георепликацию на стороне отправителя и получателя, чтобы защититься от сбоев и аварийных ситуаций. Уровень "Стандартный" поддерживает реализацию геоизбыточности только на стороне отправителя и получателя. Сбой или авария в регионе Azure могут привести к простою вашего решения.
Настройте геоизбыточное аварийное восстановление. - Активный — активный
- Активный/пассивный
- Сопряженное пространство имен (активный — пассивный)
- Примечание. Желательно, чтобы дополнительный регион был сопряженным регионом Azure.
Если вам требуется критически важная система обмена сообщениями с очередями и разделами, рекомендуется использовать Служебную шину уровня "Премиум" с геоизбыточным аварийным восстановлением. Выбор шаблона зависит от бизнес-требований и цели времени восстановления (RTO).
Настройте избыточность между зонами в пространстве имен Служебной шины (доступно только в категории "Премиум"). Избыточность между зонами включает в себя три копии хранилища сообщений. Одна зона выделяется в качестве основного хранилища обмена сообщениями, а другие зоны — в качестве дополнительных. Если основная зона становится недоступной, дополнительная зона повышается до основной без наблюдаемого простоя. Зоны доступности доступны в подмножестве регионов Azure, куда регулярно добавляются новые регионы.
Реализуйте высокий уровень доступности для пространства имен Служебной шины. Категория "Премиум" поддерживает геоизбыточное аварийное восстановление и репликацию на уровне пространства имен. На этом уровне категория "Премиум" обеспечивает высокий уровень доступности для аварийного восстановления метаданных с использованием основного и дополнительного пространств имен аварийного восстановления.
Убедитесь, что связанные сообщения гарантированно доставляются в нужном порядке. Обратите внимание на требование указывать ключ секции, идентификатор сеанса или идентификатор сообщения для каждого сообщения, чтобы обеспечить отправку связанных сообщений в одну секцию в сущности обмена сообщениями.
Оцените различные возможности службы обмена сообщениями JMS с помощью API JMS. Функции, доступные через API JMS 2.0 (и его пакет средств разработки программного обеспечения (SDK)), не совпадают с функциями, доступными в собственном пакете SDK. Например, сеансы Служебной шины недоступны в JMS.
Реализуйте устойчивость для обработки временных сбоев при отправке или получении сообщений. Важно реализовать подходящую обработку временных сбоев и ошибок для операций отправки и получения, чтобы обеспечить надлежащую пропускную способность и предотвратить потери сообщений.
Реализуйте автоматическое масштабирование единиц обмена сообщениями, чтобы убедиться, что у вас достаточно ресурсов, доступных для рабочих нагрузок.

Артефакты источника

  • Чтобы определить экземпляры Служебной шины уровня "Премиум", которые не используют частные конечные точки, используйте следующий запрос:

    Resources
    | where
      type == 'microsoft.servicebus/namespaces'
    | where
      sku.tier == 'Premium'
      and isempty(properties.privateEndpointConnections)
    
  • Чтобы определить экземпляры Служебной шины, не относящиеся к уровню "Премиум", используйте следующий запрос:

    Resources
    | where
      type == 'microsoft.servicebus/namespaces'
    | where
      sku.tier != 'Premium'
    
  • Чтобы определить экземпляры Служебной шины уровня "Премиум", которые не являются избыточными между зонами, используйте следующий запрос:

    Resources
    | where
      type == 'microsoft.servicebus/namespaces'
    | where
      sku.tier == 'Premium'
      and properties.zoneRedundant == 'false'
    

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