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


Рекомендации по устойчивости для Azure Cosmos DB для NoSQL

В этой статье содержатся рекомендации по обеспечению устойчивости для Azure Cosmos DB для NoSQL. Многие рекомендации содержат вспомогательные запросы Azure Resource Graph (ARG) для выявления несоответствующих ресурсов.

Матрица влияния рекомендаций по устойчивости

Каждая рекомендация помечается в соответствии со следующей матрицей влияния:

Изображения Воздействие Описание
Высокая Необходимо немедленное исправление.
Средняя Исправление в течение 3–6 месяцев.
Низкая Необходимо проверить.

Сводка рекомендаций по устойчивости

Категория Приоритет Рекомендация
Доступность Настройка по крайней мере двух регионов для обеспечения высокой доступности
Аварийное восстановление Включение отработки отказа, управляемой службой, для учетных записей с несколькими регионами с одним регионом записи
Оценка возможностей записи в нескольких регионах
Выбор соответствующего режима согласованности, отражающего требования к устойчивости данных
Настройка режима непрерывного резервного копирования
Эффективность системы Убедитесь, что результаты запроса полностью осушены
Обслуживание одноэлементного шаблона в клиенте
Устойчивость приложений Реализация логики повторных попыток в клиенте
Мониторинг Мониторинг работоспособности Cosmos DB и настройка оповещений

Availability

Настройка по крайней мере двух регионов для обеспечения высокой доступности

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

Потенциальные преимущества: повышает уровень обслуживания и устойчивость.

Дополнительные сведения:Надежность (высокий уровень доступности) в Cosmos DB для No SQL

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
     array_length(properties.locations) < 2 or
    (array_length(properties.locations) < 3 and properties.consistencyPolicy.defaultConsistencyLevel == 'Strong')
| project recommendationId='cosmos-1', name, id, tags

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

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

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

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    array_length(properties.locations) > 1 and
    tobool(properties.enableAutomaticFailover) == false and
    tobool(properties.enableMultipleWriteLocations) == false
| project recommendationId='cosmos-2', name, id, tags

Оценка возможностей записи в нескольких регионах

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

Возможные преимущества: повышение высокого уровня доступности.

Дополнительные сведения:

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    array_length(properties.locations) > 1 and
    properties.enableMultipleWriteLocations == false
| project recommendationId='cosmos-3', name, id, tags

Выбор соответствующего режима согласованности, отражающего требования к устойчивости данных

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

Потенциальные преимущества: повышение устойчивости и восстановления данных.

Дополнительные сведения:Уровни согласованности в Azure Cosmos DB

Настройка режима непрерывного резервного копирования

Резервная копия Cosmos DB всегда включена, обеспечивая защиту от неудач данных. Непрерывный режим позволяет самостоятельно выполнять восстановление до точки недоразумения, в отличие от периодического режима, который требует обращения в службу поддержки Майкрософт, что приводит к более длительному времени восстановления.

Возможные преимущества: быстрое самостоятельное восстановление данных.

Дополнительные сведения: непрерывная архивация с функцией восстановления на определенный момент времени в Azure Cosmos DB

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    properties.backupPolicy.type == 'Periodic' and
    properties.enableMultipleWriteLocations == false and
    properties.enableAnalyticalStorage == false
| project recommendationId='cosmos-5', name, id, tags

Эффективность системы

Убедитесь, что результаты запроса полностью осушены

Cosmos DB имеет ограничение на 4 МБ ответа, что приводит к результатам с разбивкой на страницы для больших запросов или запросов, охватывающих секции. Каждая страница показывает доступность и предоставляет маркер продолжения для следующего. Цикл в коде необходим для обхода всех страниц до завершения.

Потенциальные преимущества: максимально повышает эффективность извлечения данных.

Дополнительные сведения: разбиение на страницы в Azure Cosmos DB для No SQL.

Обслуживание одноэлементного шаблона в клиенте

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

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

Дополнительные сведения:Проектирование устойчивых приложений с помощью пакетов SDK для Azure Cosmos DB.

Устойчивость приложения

Реализация логики повторных попыток в клиенте

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

Потенциальные преимущества: повышает устойчивость обработки ошибок.

Дополнительные сведения:Проектирование устойчивых приложений с помощью пакетов SDK для Azure Cosmos DB.

Наблюдение

Мониторинг работоспособности Cosmos DB и настройка оповещений

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

Потенциальные преимущества: упреждающее управление проблемами.

Дополнительные сведения:Создание оповещений для Azure Cosmos DB с помощью Azure Monitor