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


Служебная шина Azure георепликация (предварительная версия)

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

Примечание.

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

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

  • Очереди, разделы, подписки, фильтры.
  • Данные, которые находятся в сущностях.
  • Все изменения состояния и изменения свойств, выполненные в сообщениях в пространстве имен.
  • Конфигурация пространства имен.

Примечание.

В настоящее время поддерживается только одна вторичная.

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

Внимание

  • Эта функция в настоящее время доступна в общедоступной предварительной версии, и такая возможность не должна использоваться в рабочих сценариях.
  • В настоящее время в общедоступной предварительной версии поддерживаются следующие регионы.
Region Region Region
AustraliaCentral ГерманияНорт Норвегия
AustraliaCentral2 ГерманияWestCentral ПольшаCentral
AustraliaEast ИзраильCentral SouthAfricaNorth
AustraliaSoutheast ИталияНорт SouthAfricaWest
БразилияSoutheast JapanEast SoutheastAsia
CanadaCentral JapanWest SouthIndia
CanadaEast JioIndiaCentral ИспанияCentral
CentralIndia JioIndiaWest ШвецияCentral
CentralUS KoreaCentral SwitzerlandNorth
CentralUSEUAP KoreaSouth ШвейцарияWest
EastAsia МексикаCentral ОАЭCentral
EastUS2 NorthCentralUS UAENorth
FranceCentral NorthEurope UKSouth
FranceSouth NorwayEast UKWest
  • Эта функция в настоящее время доступна в новых пространствах имен. Если пространство имен включило эту функцию раньше, ее можно отключить (удалив вторичные регионы) и повторно включить ее.
  • Следующие функции в настоящее время не поддерживаются. Мы постоянно работаем над добавлением дополнительных функций в общедоступную предварительную версию и обновим этот список с последним состоянием.
    • Поддержка больших сообщений.
    • VNET / расширенные сетевые функции (частные конечные точки, IP-списки управления доступом, NSP, конечные точки службы).
    • Удостоверения (MSI, отключение локальной проверки подлинности) и параметры шифрования (шифрование, управляемое клиентом (CMK) или шифрование собственного ключа (BYOK).
    • Автомасштабирование.
    • Секционированные пространства имен.
    • Отправка событий в сетку событий.
  • Эту функцию нельзя использовать в сочетании с функцией геоизбытого восстановления Служебная шина Azure.

Сценарии

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

Аварийное восстановление

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

Миграция регионов

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

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

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

Ниже приведены некоторые ключевые аспекты функции георепликации.

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

Режимы репликации

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

Асинхронная репликация

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

Синхронная репликация

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

Сравнение режима репликации

При синхронной репликации:

  • Задержка более длинна из-за операций распределенной фиксации.
  • Доступность связана с доступностью двух регионов.

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

При асинхронной репликации:

  • Задержка влияет минимально.
  • Потеря дополнительного региона не влияет на доступность. Однако доступность влияет после достижения максимальной задержки репликации.

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

Возможность Синхронная репликация Асинхронная репликация
Задержка Дольше из-за операций распределенной фиксации Минимальное влияние
Availability Привязка к доступности дополнительных регионов Потеря дополнительного региона не влияет на доступность сразу же
Согласованность данных Данные всегда фиксируют в обоих регионах перед подтверждением Данные зафиксированы только перед подтверждением
RPO (целевая точка восстановления) RPO 0, без потери данных при повышении уровня RPO > 0, возможная потеря данных при продвижении

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

Примечание.

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

Выбор дополнительного региона

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

Управление георепликацией

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

  • Настройка георепликации; Вторичные регионы можно настроить на любом новом или существующем пространстве имен в регионе с включенной функцией георепликации.

    Примечание.

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

  • Настройка согласованности репликации; Синхронная и асинхронная репликация устанавливается при настройке георепликации, но также может быть переключен после этого.
  • Повышение триггера; Все рекламные акции инициируются клиентом.
  • Удаление вторичной; Если в любое время вы хотите удалить дополнительный регион, можно сделать это после удаления данных в дополнительном регионе.

Настройка

Используя портал Azure

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

Примечание.

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

  1. Создайте новое пространство имен уровня "Премиум".
  2. Установите флажок "Включить георепликацию" в разделе репликации (предварительная версия).
  3. Нажмите кнопку "Добавить дополнительный регион " и выберите регион.
  4. Установите флажок "Синхронная репликация" или укажите значение для асинхронной репликации — максимальное значение задержки репликации в секундах. Снимок экрана: интерфейс создания пространства имен с включенной георепликацией.

Использование шаблона Bicep

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

param serviceBusName string
param primaryLocation string
param secondaryLocation string
param maxReplicationLagInSeconds int

resource sb 'Microsoft.ServiceBus/namespaces@2023-01-01-preview' = {
  name: serviceBusName
  location: primaryLocation
  sku: {
    name: 'Premium'
    tier: 'Premium'
    capacity: 1
  }
  properties: {
    geoDataReplication: {
      maxReplicationLagDurationInSeconds: maxReplicationLagInSeconds
      locations: [
        {
          locationName: primaryLocation
          roleType: 'Primary'
        }
        {
          locationName: secondaryLocation
          roleType: 'Secondary'
        }
      ]
    }
  }
}

Управление

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

Переключение режима репликации

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

Удаление дополнительного региона

Чтобы удалить дополнительный регион, щелкните значок ...-многоточие рядом с регионом и нажмите кнопку "Удалить". Чтобы удалить регион, следуйте инструкциям во всплывающей колонке. Снимок экрана: удаление дополнительного региона.

Поток продвижения

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

Внимание

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

После запуска промоушении:

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

    Примечание.

    Вы можете проверить текущий основной регион, инициируя команду ping: ping your-namespace-полный имя

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

Снимок экрана: портал, показывающий поток продвижения от первичного до дополнительного региона.

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

Используя портал Azure

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

Screeshot, показывающий поток для продвижения дополнительного региона.

Использование Azure CLI

Выполните команду Azure CLI, чтобы инициировать повышение. Свойство Force является необязательным и по умолчанию имеет значение false.

az rest --method post --url https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.ServiceBus/namespaces/<namespaceName>/failover?api-version=2023-01-01-preview --body "{'properties': {'PrimaryLocation': '<newPrimaryocation>', 'api-version':'2023-01-01-preview', 'Force':'false'}}"

Мониторинг репликации данных

Пользователи могут отслеживать ход выполнения задания репликации, отслеживая метрику задержки репликации в Log Analytics.

  • Включите журналы метрик в пространстве имен служебная шина, как описано в разделе "Монитор Служебная шина Azure".
  • После включения журналов метрик необходимо создать и использовать данные из пространства имен в течение нескольких минут, прежде чем приступить к просмотру журналов.
  • Чтобы просмотреть журналы метрик, перейдите в раздел "Мониторинг" служебная шина и щелкните колонку "Журналы". Следующий запрос можно использовать для поиска задержки репликации (в секундах) между основными и вторичными регионами.
AzureMetrics
| where TimeGenerated > ago(1h)
| where MetricName == "ReplicationLagDuration"

Публикация данных

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

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

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

Использование данных

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

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

Обратите внимание на следующие моменты для этого выпуска:

  • В планировании продвижения вы также должны учитывать фактор времени. Например, если вы потеряете подключение до 15–20 минут, вы можете принять решение инициировать повышение.
  • Продвижение сложной распределенной инфраструктуры должно быть отрепетировано по крайней мере один раз.

Цены

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

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

Дополнительную информацию об обмене сообщениями через служебную шину см. в следующих статьях: