Служебная шина Azure гео-катастрофическое восстановление

Вы можете использовать функцию восстановления служебной шины Geo-Disaster для изоляции приложений служебной шины Azure от сбоев и аварий. Она помогает сохранить целостность составной конфигурации приложения.

Примечание.

Эта функция доступна для уровня "Премиум" службы шины Azure.

Функция восстановления Geo-Disaster непрерывно реплицирует всю конфигурацию пространства имен (сущностей, конфигурации, свойств) из основного пространства имен в дополнительное парное пространство имен. Вы можете инициировать аварийное переключение с первичного на вторичный в любое время. Переключение на резерв перенаправляет выбранное имя псевдонима пространства имен на вторичное пространство имен и затем разрывает связь. После начала процесса переключения отказа он происходит почти мгновенно.

Сравнение с Geo-Replication

Служебная шина Azure предоставляет две функции для географической устойчивости: Geo-Replication и Geo-Disaster Recovery. Ключевое различие заключается в том, что Geo-Replication реплицирует метаданные и данные (сообщения, состояния сообщений, изменения свойств), а Geo-Disaster Recovery реплицирует только метаданные. Для большинства сценариев аварийного восстановления рекомендуется использовать георепликацию. Подробное сравнение см. в разделе "Надежность" в служебной шине Azure. Устойчивость к сбоям на уровне региона.

Важные факторы, которые следует принять во внимание

  • Эта функция обеспечивает непрерывную непрерывность операций с той же конфигурацией, но не реплицирует сообщения, хранящиеся в очередях или подписках раздела, или очереди недоставленных писем. Для сохранения семантики очереди такая репликация требует не только реплицирования данных сообщений, но и отслеживания каждого изменения состояния брокера. Эта репликация предлагается в функцииGeo-Replication.
  • Назначения управления доступом на основе ролей (RBAC) Microsoft Entra для сущностей Service Bus в основном пространстве имен не реплицируются во вторичное пространство имен. Создайте назначения ролей в дополнительном пространстве имен вручную, чтобы защитить доступ к этим сущностям.
  • Следующие конфигурации не реплицируются.
    • Конфигурации виртуальной сети
    • Подключения частных конечных точек
    • Активирован доступ ко всем сетям
    • Доступ к доверенной службе включен
    • Доступ из общедоступной сети
    • Действие сети по умолчанию
    • Идентичности и параметры шифрования (шифрование с ключом, управляемым клиентом, или предоставление собственных ключей (BYOK))
    • Включить автомасштабирование
    • Отключение локальной проверки подлинности
    • подписки на Azure Event Grid
  • Связывание секционированного пространства имен с непартиментным пространством имен не поддерживается.
  • Если вы включаете AutoDeleteOnIdle для сущности, она может отсутствовать в дополнительном пространстве имен при переключении на резерв. Когда вторичный становится первичным, состояние последнего доступа, которое не является частью метаданных, недоступно для нового первичного объекта, и сущность может быть удалена в рамках AutoDeleteOnIdle очистки.

Совет

Чтобы реплицировать содержимое очередей и подписок на темы и управлять соответствующими пространствами имен в конфигурациях active/active для решения проблем сбоев и аварий, не полагайтесь на этот функционал Geo-Disaster Recovery. Вместо этого используйте функциюGeo-Replication или следуйте инструкциям по репликации.

Основные понятия и термины

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

В этом руководстве используются термины, представленные ниже.

  • Псевдоним. Имя настроенной конфигурации аварийного восстановления. Псевдоним предоставляет единую стабильную строку подключения полного доменного имени (FQDN). Приложения используют строку подключения с псевдонимом для подключения к пространству имен. При использовании псевдонима строка подключения при запуске переключения остаётся той же.

  • Основное или дополнительное пространство имен. Пространство имен, соответствующее псевдониму. Основное пространство имен активно и получает сообщения (это может быть существующее или новое пространство имен). Дополнительное пространство имен является пассивным и не получает сообщения. Метаданные между ними синхронизированы, поэтому они могут беспрепятственно принимать сообщения без каких-либо изменений кода или строки подключения приложения. Чтобы убедиться, что только активное пространство имен получает сообщения, необходимо использовать псевдоним.

  • Метаданные: Сущности, такие как очереди, топики и подписки, а также свойства служб, связанные с пространством имен. Только сущности и их параметры реплицируются автоматически. Сообщения не реплицируются.

  • Файловер: процесс активации дополнительного пространства имен.

Настройка

В следующем разделе представлен обзор настройки связывания между пространствами имен.

Снимок экрана: настройка связывания с Geo-Disaster Recovery.

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

  1. Создайте основное пространство имен уровня "Премиум".

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

  3. На портале Azure перейдите к основному пространству имен.

  4. Выберите Геовосстановление в меню слева и выберите Инициировать сопряжение на панели инструментов.

    Снимок экрана: страница Geo-Recovery с выбранной ссылкой

  5. Для запуска связывания выполните следующие действия.

    1. Выберите существующее дополнительное пространство имен или создайте его в другом регионе. В этом примере в качестве вспомогательного пространства имен используется существующее пространство имен.

    2. В поле "Псевдоним" введите псевдоним для гео-восстановления после катастроф.

    3. Нажмите кнопку "Создать".

      Снимок экрана, показывающий страницу

  6. Должна отобразиться страница псевдонима служебной шины Microsoft Azure Geo-Dr, как показано на следующем рисунке. Вы также можете перейти на страницу Geo-DR Псевдоним с основного пространства имен, выбрав Geo-Recovery в левом меню.

    Снимок экрана: страница

  7. На странице Geo-DR Псевдоним выберите Политики общего доступа в меню слева, чтобы получить доступ к основной строке подключения для псевдонима. Используйте эту строку подключения вместо использования строки подключения к основному или вторичному пространству имен напрямую. Изначально псевдоним указывает на основное пространство имен.

  8. Перейдите на страницу Обзор. Можно выполнять следующие действия:

    1. Разорвать связь между основным и вспомогательным пространствами имен. Выберите "Разрыв связывания" на панели инструментов.
    2. Выполните переход в дополнительное пространство имен вручную.
      1. Выберите фейловер на панели инструментов.

      2. Подтвердите, что вы хотите переключиться на вспомогательное пространство имен, введя свой псевдоним.

      3. Включите опцию безопасное переключение, чтобы безопасно переключиться на вторичное пространство имен.

        Примечание.

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

        Скриншот страницы переключения при отказе.

        Внимание

        Отработка отказа активирует дополнительное пространство имен и удаляет основное пространство имен из связывания геокатасторного восстановления. Создайте другое пространство имен, чтобы создать новую пару для геоизбыточного восстановления.

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

Шина обслуживания: от стандартного к премиальному

При переносе пространства имен служебной шины Azure уровня Standard в служебную шину Azure уровня Premium необходимо использовать ранее существующий псевдоним (строка подключения пространства имен служебной шины уровня Standard) для создания конфигурации аварийного восстановления с помощью PS/CLI или REST API.

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

Клиентские приложения должны использовать этот псевдоним (строка подключения стандартного пространства имен служебной шины Azure) для подключения к пространству имен класса Premium, в котором вы настроили пару аварийного восстановления.

Если вы используете портал Azure для настройки конфигурации аварийного восстановления, портал обрабатывает эти сведения.

Поток отработки отказа

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

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

После срабатывания механизма переключения на отказ —

  1. Строка подключения с псевдонимом обновлена для указания на вторичное пространство имен категории "Премиум".

  2. Клиенты (отправители и получатели) автоматически подключаются к дополнительному пространству имен.

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

После инициирования переключения происходит следующее.

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

  2. Извлеките сообщения из прежнего основного пространства имен, как только оно станет доступным. После этого используйте это пространство имен для регулярного обмена сообщениями за пределами настройки геокатастирного восстановления или удалите старое основное пространство имен.

Примечание.

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

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

Схема рабочего процесса автоматизированного переключения при отказе, показывающая этапы мониторинга, проверки условий переключения и переключения неймспейса.

Управление

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

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

При наличии сценария, в котором невозможно изменить подключения отправителей и потребителей, можно повторно использовать имя пространства имен в качестве псевдонима. Дополнительные сведения см. в примере кода на GitHub.

Примеры

В образцах на GitHub показано, каким образом настроить и инициировать фейловер. В этих примерах демонстрируются следующие понятия:

  • Пример и параметры .NET, необходимые в Microsoft Entra ID для использования Azure Resource Manager с Служебной шиной, для настройки и активации гео-восстановления после аварий.
  • шаги, необходимые для выполнения примера кода;
  • Использование имеющегося пространства имен в качестве псевдонима.
  • Действия по активации геокатастрофического восстановления с помощью PowerShell или CLI.
  • Отправка и получение из текущего основного или вторичного пространства имен с использованием псевдонима.

Рекомендации

Помните о следующих соображениях в этом релизе.

  • Учтите фактор времени в планировании аварийного переключения. Например, если потеря подключения длится более 15–20 минут, можно принять решение о переключении на резервное оборудование.
  • Так как данные не реплицируются, активные сеансы в настоящее время не реплицируются. Кроме того, обнаружение дубликатов и запланированные сообщения могут быть недоступны. Новые сеансы, новые запланированные сообщения и новые повторяющиеся работы.
  • Вы должны отрепетировать имитацию отказа как минимум один раз в распределённой сложной инфраструктуре.
  • Синхронизация сущностей может занять некоторое время (примерно 50–100 сущностей в минуту). Подписки и правила также учитываются как сущности.

Частные конечные точки

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

Новые пары

Если вы пытаетесь создать связывание между основным пространством имен с частной конечной точкой и вторичным пространством имен без частной конечной точки, связывание завершается ошибкой. Связывание выполняется только в том случае, если первичные и вторичные пространства имен имеют частные конечные точки. Используйте те же конфигурации в основных и вторичных пространствах имен и в виртуальных сетях, где создаются частные конечные точки.

Примечание.

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

Чтобы проверить, совпадают ли конфигурации частных конечных точек, отправьте запрос Получить очереди к дополнительному пространству имен из-за пределов виртуальной сети и убедитесь, что служба выдает сообщение об ошибке.

Существующие пары

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

Примечание.

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

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

Предположим, у вас есть две виртуальные сети, VNET-1 и VNET-2, а также эти первичные и вторичные пространства имен: ServiceBus-Namespace1-Primary и ServiceBus-Namespace2-Secondary. Выполните следующие действия.

  • Создайте ServiceBus-Namespace1-Primaryдве частные конечные точки, использующие подсети из виртуальной сети-1 и виртуальной сети-2.
  • Создайте ServiceBus-Namespace2-Secondaryдве частные конечные точки, использующие одни и те же подсети из виртуальной сети-1 и виртуальной сети-2.

Схема, на которую показаны частные конечные точки и конфигурация виртуальных сетей для Geo-Disaster Recovery.

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

Отработка отказа только для приложений: здесь приложение не существует в VNET-1, но переходит в VNET-2. Так как частные конечные точки настроены как в виртуальной сети-1, так и в виртуальной сети-2 для основных и вторичных пространств имен, приложение функционирует беспрепятственно.

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

Примечание.

Для получения рекомендаций по восстановлению виртуальной сети после геокатастроф см. в разделе Виртуальная Сеть — Обеспечение Непрерывности Бизнеса.

Управление доступом на основе ролей

Назначения управления доступом на основе ролей (RBAC) Microsoft Entra для сущностей Service Bus в основном пространстве имен не реплицируются во вторичное пространство имен. Создайте назначения ролей в дополнительном пространстве имен вручную, чтобы защитить доступ к этим сущностям.

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

Дополнительную информацию об обмене сообщениями в службе Service Bus можно найти в следующих статьях: