Включение георепликации
В этой статье рассматривается репликация хранилищ Конфигурации приложений Azure. Вы узнаете, как создавать, использовать и удалять реплику в хранилище конфигураций.
Дополнительные сведения о концепции георепликации см. в разделе Георепликация в Конфигурации приложений Azure.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Предполагается, что у вас уже есть хранилище конфигураций приложений. Если у вас его нет, создайте хранилище конфигураций приложений.
Создание и отображение реплики
Чтобы создать реплику хранилища конфигурации на портале, выполните следующие действия.
Примечание.
Создание реплики для хранилища Конфигурация приложений с частными конечными точками, настроенными со статическим IP-адресом, не поддерживается. Если вы предпочитаете частную конечную точку со статической IP-конфигурацией, необходимо создать реплики перед добавлением частной конечной точки в хранилище.
В хранилище конфигураций приложений в разделе Параметры выберите Георепликация.
В разделе Реплики выберите Создать. Выберите расположение для новой реплики в раскрывающемся списке, а затем назначьте имя для реплики. Имя реплики должно быть уникальным.
Нажмите кнопку создания.
Теперь новая реплика должна отображаться в разделе "Реплики". Убедитесь, что состояние реплики — "Выполнено", что указывает на успешное создание реплики.
Удаление реплики
Чтобы удалить реплику на портале, выполните указанные ниже действия.
В хранилище конфигураций приложений в разделе Параметры выберите Георепликация.
В разделе Реплики выберите ... справа от реплики, которую требуется удалить. Выберите Удалить в раскрывающемся меню.
Проверьте имя удаляемой реплики и нажмите кнопку ОК, чтобы подтвердить.
После завершения процесса проверьте список реплик и убедитесь, что были удалены нужные реплики.
Автоматическое обнаружение реплики
Поставщики Конфигурация приложений могут автоматически обнаруживать любые реплики из заданной конечной точки Конфигурация приложений и пытаться подключиться к ним. Эта функция позволяет воспользоваться георепликацией, не изменив код или повторно разверните приложение. Это означает, что вы можете включить георепликацию или добавить дополнительные реплики даже после развертывания приложения.
Автоматическое обнаружение реплик включено по умолчанию, но вы можете обратиться к следующему примеру кода, чтобы отключить его (не рекомендуется).
Измените вызов 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
Масштабирование и отработка отказа с помощью реплик
Каждая создаваемая вами реплика имеет свою выделенную конечную точку. Если приложение находится в нескольких географических расположениях, вы можете обновить каждое развертывание приложения в расположении, чтобы подключиться к реплике ближе к этому расположению, что помогает свести к минимуму задержку сети между приложением и Конфигурация приложений. Поскольку каждая реплика имеет свою отдельную квоту запросов, эта настройка также способствует масштабируемости вашего приложения по увеличения его размера до распределенной службы с несколькими регионами.
Когда георепликация включена и одна реплика недоступна, вы можете позволить своему приложению переключаться на другую реплику для повышения отказоустойчивости. Конфигурация приложений поставщики имеют встроенную поддержку отработки отказа через предоставленные пользователем реплики и (или) дополнительные автоматически обнаруженные реплики. Вы можете предоставить список конечных точек вашей реплики в порядке от наиболее предпочтительной до наименее предпочтительной конечной точки. Если текущая конечная точка недоступна, поставщик будет выполнять отработку отказа в менее предпочтительную конечную точку, но пытается подключиться к более предпочтительным конечным точкам со времени. Если все предоставленные пользователем реплики недоступны, автоматически обнаруженные реплики будут выбраны и использованы случайным образом. Когда более предпочтительная конечная точка становится доступной, поставщик переключится на него для будущих запросов.
Если у вас есть приложение с помощью Конфигурация приложений Azure, его можно обновить в следующем примере кода, чтобы воспользоваться преимуществами функции отработки отказа. Можно указать список конечных точек для проверки подлинности Microsoft Entra или список строка подключения для проверки подлинности на основе ключа доступа.
Измените вызов AddAzureAppConfiguration
метода, который часто находится в program.cs
файле приложения.
Подключение с помощью идентификатора Microsoft Entra
configurationBuilder.AddAzureAppConfiguration(options =>
{
// Provide an ordered list of replica endpoints
var endpoints = new Uri[] {
new Uri("<first-replica-endpoint>"),
new Uri("<second-replica-endpoint>") };
// 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
Отработка отказа может произойти, если поставщик Конфигурации приложений соблюдает следующие условия.
- Получает ответы со статусом недоступности службы (код состояния HTTP 500 или больше).
- Решения проблем с подключением к сети.
- Запросы регулируются (код состояния HTTP 429).
Отработка отказа не произойдет при ошибках клиента, таких как сбои проверки подлинности.
Балансировка нагрузки с помощью реплик
По умолчанию приложение всегда отправляет запросы к наиболее предпочтительной конечной точке, за исключением случаев отработки отказа. Однако в дополнение к отработке отказа реплики также можно использовать для балансировки нагрузки запросов. Заранее распределяя запросы между любыми доступными репликами с течением времени, можно избежать исчерпания квоты запроса одной реплики и повысить общую масштабируемость приложения.
Поставщики Конфигурация приложений предлагают встроенную поддержку балансировки нагрузки между репликами, будь то предоставленные в коде или обнаруженные автоматически. Для включения этой функции в приложении (рекомендуется) можно использовать следующие примеры кода.
Измените вызов AddAzureAppConfiguration
метода, который часто находится в program.cs
файле приложения.
configurationBuilder.AddAzureAppConfiguration(options =>
{
// Enable load balancing
options.LoadBalancingEnabled = true;
// Other changes to options
});
Примечание.
Поддержка балансировки нагрузки доступна, если вы используете версию 8.0.0-preview.3 или более позднюю версию любого из следующих пакетов.
Microsoft.Extensions.Configuration.AzureAppConfiguration
Microsoft.Azure.AppConfiguration.AspNetCore
Microsoft.Azure.AppConfiguration.Functions.Worker