Рекомендации по устойчивости для Azure Cosmos DB для NoSQL
В этой статье содержатся рекомендации по обеспечению устойчивости для Azure Cosmos DB для NoSQL. Многие рекомендации содержат вспомогательные запросы Azure Resource Graph (ARG) для выявления несоответствующих ресурсов.
Матрица влияния рекомендаций по устойчивости
Каждая рекомендация помечается в соответствии со следующей матрицей влияния:
Изображения | Воздействие | Описание |
---|---|---|
Высокая | Необходимо немедленное исправление. | |
Средняя | Исправление в течение 3–6 месяцев. | |
Низкая | Необходимо проверить. |
Сводка рекомендаций по устойчивости
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
Оценка возможностей записи в нескольких регионах
Возможность записи в нескольких регионах позволяет создавать приложения, высокодоступные в нескольких регионах, хотя требует внимательного внимания к требованиям согласованности и разрешению конфликтов. Неправильное настройка может снизить доступность и привести к повреждению данных из-за необработанных конфликтов.
Возможные преимущества: повышение высокого уровня доступности.
Дополнительные сведения:
- Глобальное распределение данных с помощью Azure Cosmos DB
- Типы конфликтов и политики разрешения конфликтов при использовании нескольких регионов записи
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
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по