Включение георепликации

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

Дополнительные сведения о концепции георепликации см. в разделе Георепликация в Конфигурации приложений Azure.

Предварительные условия

Создание и перечисление реплики

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

Примечание.

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

  1. В хранилище конфигураций приложений в разделе Параметры выберите Георепликация.

  2. В разделе Реплики выберите Создать. Выберите расположение для новой реплики в раскрывающемся списке, а затем назначьте имя для реплики. Имя реплики должно быть уникальным.

    Снимок экрана: выделена кнопка георепликации, а также кнопка создания для реплики.

  3. Нажмите кнопку создания.

  4. Теперь новая реплика должна отображаться в разделе "Реплики". Убедитесь, что состояние реплики — "Выполнено", что указывает на то, что она была успешно создана.

    Снимок экрана: список реплик, созданных для хранилища конфигураций.

Удаление реплики

Чтобы удалить реплику на портале, выполните указанные ниже действия.

  1. В хранилище конфигураций приложений в разделе Параметры выберите Георепликация.

  2. В разделе Реплики выберите ... справа от реплики, которую требуется удалить. Выберите Удалить в раскрывающемся меню.

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

  3. Проверьте имя удаляемой реплики и нажмите кнопку ОК, чтобы подтвердить.

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

Автоматическое обнаружение реплики

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

Автоматическое обнаружение реплик включено по умолчанию, но вы можете обратиться к следующему примеру кода, чтобы отключить его (не рекомендуется).

Измените вызов метода AddAzureAppConfiguration, который часто находится в файле program.cs вашего приложения.

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Disable automatic replica discovery
    options.ReplicaDiscoveryEnabled = false;

    // Other changes to options
});

Примечание.

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

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

Масштабирование и переключение при отказе с помощью реплик

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

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

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

Измените вызов метода AddAzureAppConfiguration, который часто находится в файле program.cs вашего приложения.

Подключение с помощью идентификатора Microsoft Entra

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Provide an ordered list of replica endpoints
    var endpoints = new Uri[] {
        new Uri("<FirstReplicaEndpoint>"),
        new Uri("<SecondReplicaEndpoint>") };
    
    // Connect to replica endpoints using Microsoft Entra authentication
    options.Connect(endpoints, new DefaultAzureCredential());

    // Other changes to options
});

Подключитесь с помощью строки подключения

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Provide an ordered list of replica connection strings
    var connectionStrings = new string[] {
        Environment.GetEnvironmentVariable("FIRST_REPLICA_CONNECTION_STRING"),
        Environment.GetEnvironmentVariable("SECOND_REPLICA_CONNECTION_STRING") };
    
    // Connect to replica endpoints using connection strings
    options.Connect(connectionStrings);

    // Other changes to options
});

Примечание.

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

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

Отказоустойчивость может сработать, если поставщик App Configuration наблюдает следующие условия.

  • Получает ответы со статусом недоступности службы (код состояния HTTP 500 или больше).
  • Опыт работы с проблемами подключения к сети.
  • Запросы ограничены (код состояния HTTP 429).

Переключение на резерв не произойдет при клиентских ошибках, таких как ошибки аутентификации.

Балансировка нагрузки с помощью реплик

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

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

Измените вызов метода AddAzureAppConfiguration, который часто находится в файле program.cs вашего приложения.

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Enable load balancing
    options.LoadBalancingEnabled = true;

    // Other changes to options
});

Примечание.

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

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

Использование георепликации с Azure Front Door

Обнаружение реплики и балансировка нагрузки не могут быть включены на уровне приложения при использовании Azure Front Door. Чтобы использовать георепликацию с Azure Front Door, добавьте реплики в группу источников Azure Front Door. Для получения дополнительной информации см. раздел "Переключение на резерв" и "Балансировка нагрузки".

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