Геоизбыточное аварийное восстановление в службе "Центры событий Azure"Azure Event Hubs - Geo-disaster recovery

При простое целых регионов Azure или центров обработки данных (если не используются зоны доступности) крайне важно, чтобы обработка данных продолжала работать в другом регионе или центре обработки данных.When entire Azure regions or datacenters (if no availability zones are used) experience downtime, it is critical for data processing to continue to operate in a different region or datacenter. Таким образом географическое аварийное восстановление и георепликация являются важными функциями для любого предприятия.As such, Geo-disaster recovery and Geo-replication are important features for any enterprise. Центры событий Azure поддерживают географическое аварийное восстановления и георепликацию на уровне пространства имен.Azure Event Hubs supports both geo-disaster recovery and geo-replication, at the namespace level. 

Примечание

Функция географического аварийного восстановления доступна только для стандартных и выделенных номеров SKU.The Geo-disaster recovery feature is only available for the standard and dedicated SKUs.

Сбои и аварийные ситуацииOutages and disasters

Важно отметить различия между "сбоями" и "авариями".It's important to note the distinction between "outages" and "disasters." Сбой — это временная недоступность Центров событий Azure. Он может повлиять на некоторые компоненты службы, такие как хранилище сообщений, или даже весь центр обработки данных.An outage is the temporary unavailability of Azure Event Hubs, and can affect some components of the service, such as a messaging store, or even the entire datacenter. Однако после устранения проблемы Центры событий снова становятся доступны.However, after the problem is fixed, Event Hubs becomes available again. Как правило, простой не приводит к утрате сообщений или других данных.Typically, an outage does not cause the loss of messages or other data. Примером такого сбоя может быть сбой питания в центре обработки данных.An example of such an outage might be a power failure in the datacenter. Некоторые сбои являются всего лишь короткими потерями подключения из-за временных или сетевых проблем.Some outages are only short connection losses due to transient or network issues.

Авария определяется как полная или долговременная потеря кластера Центров событий, региона Azure или центра обработки данных.A disaster is defined as the permanent, or longer-term loss of an Event Hubs cluster, Azure region, or datacenter. Регион или центр обработки данных может снова стать доступным, но может и не стать или быть отключенным в течение нескольких часов или дней.The region or datacenter may or may not become available again, or may be down for hours or days. Примеры аварий — пожар, наводнение или землетрясение.Examples of such disasters are fire, flooding, or earthquake. Длительное аварийное состояние может привести к потере некоторых сообщений, событий или других данных.A disaster that becomes permanent might cause the loss of some messages, events, or other data. Но в большинстве случаев потеря данных не происходит и сообщения можно восстановить сразу же после резервного копирования в центре обработки данных.However, in most cases there should be no data loss and messages can be recovered once the data center is back up.

Функция географического аварийного восстановления Центров событий Azure — это решение для аварийного восстановления.The Geo-disaster recovery feature of Azure Event Hubs is a disaster recovery solution. Основные понятия и рабочий процесс, описанные в этой статье, относятся к сценариям восстановления после аварий, но не временных сбоев.The concepts and workflow described in this article apply to disaster scenarios, and not to transient, or temporary outages. Дополнительные сведения об аварийном восстановлении в Microsoft Azure см. в статье Аварийное восстановление для приложений на платформе Azure.For a detailed discussion of disaster recovery in Microsoft Azure, see this article.

Основные понятия и терминыBasic concepts and terms

Функция аварийного восстановления реализует аварийное восстановление метаданных и основывается на первичном и вторичном пространстве имен для аварийного восстановления.The disaster recovery feature implements metadata disaster recovery, and relies on primary and secondary disaster recovery namespaces.

Функция географического аварийного восстановления доступна только для стандартных и выделенных номеров SKU .The Geo-disaster recovery feature is available for the standard and dedicated SKUs only. Вам не нужно изменять какие-либо строки подключения, так как соединение выполняется через псевдоним.You do not need to make any connection string changes, as the connection is made via an alias.

В этом руководстве используются термины, представленные ниже.The following terms are used in this article:

  • Псевдоним. Имя настроенной конфигурации аварийного восстановления.Alias: The name for a disaster recovery configuration that you set up. Псевдоним предоставляет единую стабильную строку подключения полного доменного имени (FQDN).The alias provides a single stable Fully Qualified Domain Name (FQDN) connection string. Приложения используют ее для подключения к пространству имен.Applications use this alias connection string to connect to a namespace.

  • Основное или дополнительное пространство имен. Пространство имен, соответствующее псевдониму.Primary/secondary namespace: The namespaces that correspond to the alias. Основное пространство имен является "активным" и получает сообщения (это может быть существующее или новое пространство имен).The primary namespace is "active" and receives messages (this can be an existing or new namespace). Дополнительное пространство имен является "пассивным" и не получает сообщений.The secondary namespace is "passive" and does not receive messages. Метаданные между ними синхронизированы, поэтому они могут беспрепятственно принимать сообщения без каких-либо изменений кода или строки подключения приложения.The metadata between both is in sync, so both can seamlessly accept messages without any application code or connection string changes. Чтобы убедиться, что только активное пространство имен получает сообщения, необходимо использовать псевдоним.To ensure that only the active namespace receives messages, you must use the alias.

  • Метаданные. Сущности, такие как концентраторы событий и группы объектов-получателей, и их свойства службы, связанные с пространством имен.Metadata: Entities such as event hubs and consumer groups; and their properties of the service that are associated with the namespace. Обратите внимание, что только сущности и их параметры реплицируются автоматически.Note that only entities and their settings are replicated automatically. Сообщения и события не реплицируются.Messages and events are not replicated.

  • Отработка отказа. Процесс активации дополнительного пространства имен.Failover: The process of activating the secondary namespace.

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

Поддерживаются следующие сочетания первичного и дополнительного пространств имен:The following combinations of primary and secondary namespaces are supported:

Основное пространство именPrimary namespace Дополнительное пространство именSecondary namespace ПоддерживаетсяSuppported
СтандартныйStandard СтандартныйStandard ДаYes
СтандартныйStandard ВыделенныеDedicated ДаYes
ВыделенныеDedicated ВыделенныеDedicated ДаYes
ВыделенныеDedicated СтандартныйStandard НетNo

Примечание

Нельзя связывать пространства имен, наявляющиеся в одном выделенном кластере.You can't pair namespaces that are in the same dedicated cluster. Можно связать пространства имен, наявляющиеся в отдельных кластерах.You can pair namespaces that are in separate clusters.

Настройка и поток отработки отказаSetup and failover flow

Здесь приведен обзор процесса отработки отказа и объясняется, как настроить начальную отработку отказа.The following section is an overview of the failover process, and explains how to set up the initial failover.

1

УстановкаSetup

Сначала создается или используется существующее основное пространство имен и новое дополнительное пространство имен, а затем они связываются.You first create or use an existing primary namespace, and a new secondary namespace, then pair the two. Это связывание предоставит псевдоним, который можно использовать для подключения.This pairing gives you an alias that you can use to connect. Так как используется псевдоним, нет необходимости изменять строки подключения.Because you use an alias, you do not have to change connection strings. Только новые пространства имен могут быть добавлены к вашему связыванию.Only new namespaces can be added to your failover pairing. Наконец, следует добавить некоторые функции мониторинга, чтобы определить, необходимо ли выполнять отработку отказа.Finally, you should add some monitoring to detect if a failover is necessary. В большинстве случаев служба — это одна из частей большой экосистемы, поэтому автоматический переход на другой ресурс не всегда возможен, так как часто отработки отказа следует выполнять при синхронизации с оставшимися подсистемами или инфраструктурой.In most cases, the service is one part of a large ecosystem, thus automatic failovers are rarely possible, as very often failovers must be performed in sync with the remaining subsystem or infrastructure.

ПримерExample

Рассмотрим пример сценария с решением точки розничной продажи (POS), которое создает сообщения и события.In one example of this scenario, consider a Point of Sale (POS) solution that emits either messages or events. Центры событий передают эти события решению сопоставления или переформатирования, которое затем переадресовывает сопоставленные данные в другую систему для дальнейшей обработки.Event Hubs passes those events to some mapping or reformatting solution, which then forwards mapped data to another system for further processing. В этот момент все эти системы могут размещаться в одном регионе Azure.At that point, all of these systems might be hosted in the same Azure region. Решение о том, когда и для каких частей выполнять отработку отказа, зависит от потока данных в инфраструктуре.The decision on when and what part to fail over depends on the flow of data in your infrastructure.

Отработку отказа можно автоматизировать с помощью систем мониторинга или пользовательских решений для мониторинга.You can automate failover either with monitoring systems, or with custom-built monitoring solutions. Однако такая автоматизация требует дополнительного планирования и работы, что выходит за рамки данной статьи.However, such automation takes extra planning and work, which is out of the scope of this article.

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

Если вы инициируете отработку отказа, необходимо выполнить два шага:If you initiate the failover, two steps are required:

  1. В случае другого сбоя необходимо иметь возможность повторной отработки отказа.If another outage occurs, you want to be able to failover again. Поэтому настройте другое пассивное пространство имен и обновите связывание.Therefore, set up another passive namespace and update the pairing.

  2. Извлеките сообщения из прежнего основного пространства имен, как только оно станет доступным.Pull messages from the former primary namespace once it is available again. После этого используйте это пространство имен для регулярного обмена сообщениями вне настройки географического восстановления или удалите старое основное пространство имен.After that, use that namespace for regular messaging outside of your geo-recovery setup, or delete the old primary namespace.

Примечание

Поддерживается только семантика переадресации сбоя.Only fail forward semantics are supported. В этом сценарии выполняется отработка отказа, а затем повторное связывание с новым пространством имен.In this scenario, you fail over and then re-pair with a new namespace. Восстановление размещения не поддерживается, к примеру, в кластере SQL.Failing back is not supported; for example, in a SQL cluster.

2

УправлениеManagement

Если допущена ошибка, например, во время первоначальной настройки связаны неправильные регионы, связь двух пространств имен можно разорвать в любое время.If you made a mistake; for example, you paired the wrong regions during the initial setup, you can break the pairing of the two namespaces at any time. Если вы хотите использовать сопряженные пространства имен в качестве обычных пространств имен, удалите псевдоним.If you want to use the paired namespaces as regular namespaces, delete the alias.

ПримерыSamples

В примере из GitHub показано, как настроить и инициировать отработку отказа.The sample on GitHub shows how to set up and initiate a failover. В примере демонстрируются следующие понятия:This sample demonstrates the following concepts:

  • параметры, необходимые в Azure Active Directory для использования Azure Resource Manager с Центрами событий;Settings required in Azure Active Directory to use Azure Resource Manager with Event Hubs.
  • шаги, необходимые для выполнения примера кода;Steps required to execute the sample code.
  • отправка и получение из текущего основного пространства имен;Send and receive from the current primary namespace.

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

Обратите внимание на следующие моменты для этого выпуска:Note the following considerations to keep in mind with this release:

  1. Географическое аварийное восстановление концентраторов событий не реплицирует данные, поэтому вы не можете повторно использовать старое значение смещения основного концентратора событий в дополнительном концентраторе событий.By design, Event Hubs geo-disaster recovery does not replicate data, and therefore you cannot reuse the old offset value of your primary event hub on your secondary event hub. Мы рекомендуем перезапустить приемник событий, выполнив одно из следующих действий:We recommend restarting your event receiver with one of the following:
  • Евентпоситион. фромстарт () — если вы хотите читать все данные в дополнительном концентраторе событий.EventPosition.FromStart() - If you wish read all data on your secondary event hub.
  • Евентпоситион. фроменд () — если вы хотите прочитать все новые данные с момента подключения к дополнительному концентратору событий.EventPosition.FromEnd() - If you wish to read all new data from the time of connection to your secondary event hub.
  • Евентпоситион. фроменкуеуедтиме (DateTime) — если вы хотите читать все данные, полученные в дополнительном концентраторе событий, начиная с заданной даты и времени.EventPosition.FromEnqueuedTime(dateTime) - If you wish to read all data received in your secondary event hub starting from a given date and time.
  1. При планировании отработки отказа следует также учитывать фактор времени.In your failover planning, you should also consider the time factor. Например, в случае потери подключения на более чем 15–20 минут можно запустить отработку отказа.For example, if you lose connectivity for longer than 15 to 20 minutes, you might decide to initiate the failover.

  2. Тот факт, что данные не реплицируются, означает, что в настоящее время активные сеансы не реплицируются.The fact that no data is replicated means that currently active sessions are not replicated. Кроме того, обнаружение дубликатов и запланированные сообщения могут не работать.Additionally, duplicate detection and scheduled messages may not work. Новые сеансы, запланированные сообщения и новые дубликаты будут работать.New sessions, scheduled messages, and new duplicates will work.

  3. Отработку отказа сложной распределенной инфраструктуры необходимо протестировать по крайней мере один раз.Failing over a complex distributed infrastructure should be rehearsed at least once.

  4. Синхронизация сущностей может занять некоторое время (примерно 50–100 сущностей в минуту).Synchronizing entities can take some time, approximately 50-100 entities per minute.

Зоны доступностиAvailability Zones

Номер SKU уровня "Стандартный" для Центров событий поддерживает функцию Зоны доступности, предоставляя изолированные от сбоев расположения в регионе Azure.The Event Hubs Standard SKU supports Availability Zones, providing fault-isolated locations within an Azure region.

Примечание

Поддержка Зон доступности Центров событий Azure ценовой категории "Стандартный" доступна только в регионах Azure, в которых представлены зоны доступности.The Availability Zones support for Azure Event Hubs Standard is only available in Azure regions where availability zones are present.

Вы можете включить эту функцию только в новых пространствах имен с помощью портала Azure.You can enable Availability Zones on new namespaces only, using the Azure portal. Центры событий не поддерживает перенос существующих пространств имен.Event Hubs does not support migration of existing namespaces. Вы не можете отключить избыточность в пределах зоны после ее включения в пространстве имен.You cannot disable zone redundancy after enabling it on your namespace.

3

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

  • В разделе с примером на сайте GitHub рассматривается простой рабочий процесс, который создает геосвязь и инициирует отработку отказа для сценария аварийного восстановления.The sample on GitHub walks through a simple workflow that creates a geo-pairing and initiates a failover for a disaster recovery scenario.
  • В справочнике для REST API описываются программные интерфейсы, позволяющие настроить географическое аварийное восстановление.The REST API reference describes APIs for performing the Geo-disaster recovery configuration.

Дополнительные сведения о Центрах событий см. по следующим ссылкам:For more information about Event Hubs, visit the following links: