Бөлісу құралы:


Геоизбыточное аварийное восстановление в службе "Центры событий Azure"

Примечание.

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

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

Геоизбыточное восстановление гарантирует, что вся конфигурация пространства имен (Центры событий, группы потребителей и параметры) постоянно реплицируется из основного пространства имен в дополнительное пространство имен при связывании.

Функция географического аварийного восстановления Центров событий Azure — это решение для аварийного восстановления. Основные понятия и рабочий процесс, описанные в этой статье, применяются к сценариям аварии, а не к временным сбоям. Дополнительные сведения об аварийном восстановлении в Microsoft Azure см. в статье Аварийное восстановление для приложений на платформе Azure.

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

Внимание

  • Эта функция обеспечивает мгновенную непрерывность операций с одной и той же конфигурацией, однако не реплицирует данные событий. Если сбой не привел к потере всех зон, данные о событии, сохраняемые в основном концентраторе событий после отработки отказа, будут восстановлены, а события за прошедший период можно будет оттуда получить после восстановления доступа. В случае сбоев и аварий при репликации данных о событиях и работе с соответствующими пространствами имен в конфигурациях "активный — активный" не используйте этот набор функций геоизбыточного аварийного восстановления, а следуйте руководству по репликации.
  • Назначения управления доступом на основе ролей (RBAC) Microsoft Entra для сущностей в основном пространстве имен не реплицируются в дополнительное пространство имен. Создайте назначения ролей в дополнительном пространстве имен вручную, чтобы защитить доступ к этим сущностям.

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

Функция аварийного восстановления реализует аварийное восстановление метаданных и основывается на первичном и вторичном пространстве имен для аварийного восстановления.

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

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

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

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

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

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

Поддерживаемые пары пространств имен

Ниже приведены поддерживаемые сочетания основного и дополнительного пространств имен.

Уровень основного пространства имен Уровень разрешенного дополнительного пространства имен
Стандартные Стандартный, Выделенный
Premium Premium
Выделенные Выделенные

Примечание.

Невозможно связать пространства имен, размещенные в одном выделенном кластере. Можно связать пространства имен, размещенные в разных кластерах.

Настройка и поток отработки отказа

Здесь приведен обзор процесса отработки отказа и объясняется, как настроить начальную отработку отказа.

Изображение: обзор процесса отработки отказа

Настройка

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

  1. Создание основного пространства имен.

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

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

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

    Инициирование связывания из основного пространства имен

  5. Выполните следующие действия на странице Инициировать связывание.

    1. Выберите существующее дополнительное пространство имен или создайте его в другом регионе. В этом примере выбрано существующее пространство имен.
    2. В поле Псевдоним укажите псевдоним для сопряжения geo-dr.
    3. Затем выберите Создать.

    Выбор вспомогательного пространства имен

  6. Должна появиться страница Псевдоним Geo-DR. Кроме того, на эту страницу можно перейти из основного пространства имен, выбрав Геоизбыточное восстановление в меню слева.

    Страница псевдонима Geo-DR

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

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

    1. Разорвать связь между основным и вспомогательным пространствами имен. Выберите Разорвать связь на панели инструментов.

    2. Выполните переход в дополнительное пространство имен вручную. Выберите Отработка отказа на панели инструментов.

      Предупреждение

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

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

Пример

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

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

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

Если вы инициируете отработку отказа, необходимо выполнить два шага:

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

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

Примечание.

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

Изображение: поток отработки отказа

Переход на другой ресурс вручную

В этом разделе показано, как вручную выполнить отработку отказа с помощью портала Azure, CLI, PowerShell, C# и т. д.

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

  2. В меню слева выберите Geo-recovery (Геоизбыточное восстановление).

  3. Выполните переход в дополнительное пространство имен вручную. Выберите Отработка отказа на панели инструментов.

    Предупреждение

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

Управление

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

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

Обратите внимание на следующие моменты.

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

    • EventPosition.FromStart() — если вы хотите читать все данные в дополнительном концентраторе событий.
    • EventPosition.FromEnd() — если вы хотите читать все новые данные с момента подключения к дополнительному концентратору событий.
    • EventPosition.FromEnqueuedTime(dateTime) — если вы хотите читать все данные, полученные в дополнительном концентраторе событий, начиная с заданной даты и времени.
  2. При планировании отработки отказа следует также учитывать фактор времени. Например, в случае потери подключения на более чем 15–20 минут можно запустить отработку отказа.

  3. Тот факт, что данные не реплицируются, означает, что в настоящее время активные сеансы не реплицируются. Кроме того, обнаружение дубликатов и запланированные сообщения могут не работать. Новые сеансы, запланированные сообщения и новые дубликаты будут работать.

  4. Отработку отказа сложной распределенной инфраструктуры необходимо протестировать по крайней мере один раз.

  5. Синхронизация сущностей может занять некоторое время (примерно 50–100 сущностей в минуту).

  6. Некоторые аспекты плоскости управления для дополнительного пространства имен становятся доступны только для чтения, а пара геовосстановления активна.

  7. Плоскость данных дополнительного пространства имен будет доступна только для чтения, а пара геовосстановления активна. Плоскость данных дополнительного пространства имен принимает запросы GET для включения проверки подключения клиента и управления доступом.

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

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

Новые пары

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

Примечание.

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

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

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

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

Примечание.

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

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

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

  • В EventHubs-Namespace1-Primary создайте две частные конечные точки, которые используют подсети VNET-1 и VNET-2
  • В EventHubs-Namespace2-Secondary создайте две частные конечные точки, которые используют подсети VNET-1 и VNET-2

Частные конечные точки и виртуальные сети

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

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

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

Примечание.

Рекомендации по геоизбыточному аварийному восстановлению виртуальной сети см. в статье Виртуальная сеть — непрерывность бизнес-процессов.

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

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

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

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