Лучшие практики деградации API в API Gateway
April 1, 2024
В современных распределенных системах деградация API служит важным механизмом обеспечения отказоустойчивости и стабильности. Когда система сталкивается с нагрузкой, сбоями или ограничениями ресурсов, снижение функциональности некритичных сервисов или функций обеспечивает стабильность системы и непрерывность работы ключевых бизнес-процессов. В этой статье рассматриваются сценарии деградации API и лучшие практики реализации деградации на уровне API-шлюза.
Сценарии деградации API
-
Перегрузка системы: Когда система сталкивается с резким увеличением запросов, превышающим возможности сервера, необходимо снизить функциональность некритичных API, чтобы предотвратить сбои системы и обеспечить нормальную работу ключевых функций.
-
Сбои сервисов: В случае сбоев или снижения производительности сервисов на стороне сервера, необходимо снизить функциональность API этих сервисов, чтобы предотвратить распространение сбоев.
-
Ограничения ресурсов: Когда системные ресурсы, такие как CPU, память или пропускная способность, ограничены, необходимо снизить функциональность API с высоким потреблением ресурсов, чтобы обеспечить общую стабильность системы.
Лучшие практики деградации API на уровне шлюза
Рассмотрим сценарий, в котором платформа электронной коммерции сталкивается с огромной нагрузкой во время крупных распродаж, таких как Черная пятница. Чтобы защитить ключевые функции и обеспечить пользовательский опыт, команда решает реализовать стратегии деградации API на уровне шлюза.
1. Идентификация ключевых API
Команда определяет критически важные API, такие как вход пользователя, получение информации о продукте, добавление товаров в корзину, оформление заказа и обработка платежей. Эти API необходимы для завершения процесса покупки.
2. Разработка стратегий деградации
Для ключевых API настраивается обработка снижения производительности. Например, если сервер возвращает код состояния 500 три раза подряд, активируется механизм разрыва цепи, при этом время простоя цепи автоматически увеличивается, до максимума в 300 секунд, пока сервис не восстановится.
Для некритичных API, таких как отзывы пользователей, списки рекомендаций и отображение рекламы, разрабатываются конкретные стратегии деградации:
-
API отзывов пользователей: Возвращать стандартные списки отзывов или пустые данные, чтобы избежать реальных вызовов системы отзывов.
-
API списка рекомендаций: Использовать кэшированные данные рекомендаций или возвращать фиксированный список рекомендаций, чтобы снизить зависимость от системы рекомендаций.
-
API отображения рекламы: Возвращать стандартную рекламу или пустые рекламные блоки, чтобы не нарушать макет страницы.

3. Настройка Apache APISIX / API7 Enterprise
-
Для ключевых API на соответствующих маршрутах активируется плагин "api-breaker", с условием срабатывания при трех последовательных кодах состояния
500и максимальным временем простоя цепи в 300 секунд. -
Для API оценки пользователей на соответствующем маршруте активируется плагин mocking и устанавливается
response_exampleна пустые данные. -
Для API списка рекомендаций на соответствующем маршруте активируется плагин proxy-cache и выбирается использование кэширования ответов в памяти.
-
Для API отображения рекламы на соответствующем маршруте активируется плагин mocking и устанавливается
response_exampleна стандартную рекламу, обеспечивая нормальное отображение страницы и кликабельную рекламу.
4. Динамическое управление конфигурацией
Чтобы адаптироваться к изменяющимся условиям нагрузки, команда выбирает шлюзы с возможностью динамической перезагрузки: Apache APISIX / API7 Enterprise. Они могут корректировать пороги разрыва цепи, стратегии деградации и активировать переключатели деградации на основе данных мониторинга в реальном времени, выборочно снижая функциональность некритичных API при пиковых нагрузках.
5. Мониторинг и оповещения
Команда настраивает политики оповещений непосредственно в шлюзе API7 или интегрирует их с внутренними системами мониторинга и оповещений с использованием APISIX. Реальный мониторинг времени ответа API, частоты ошибок и объемов вызовов позволяет автоматически выполнять деградацию при достижении пороговых значений или условий срабатывания. Оперативный персонал уведомляется через SMS, электронную почту или другие средства для своевременного устранения потенциальных проблем, обеспечивая стабильность системы.
6. Оценка и корректировка
После внедрения стратегий деградации команда внимательно отслеживает производительность системы и пользовательский опыт. Они оценивают эффективность стратегий деградации через обратную связь пользователей, анализ бизнес-данных и метрики мониторинга. На основе результатов оценки команда своевременно корректирует стратегии деградации, чтобы лучше балансировать нагрузку системы и удовлетворенность пользователей.
В заключение
Деградация API, как важный механизм отказоустойчивости в современных распределенных системах, значительно повышает стабильность системы и пользовательский опыт при реализации на уровне API-шлюза. Путем идентификации ключевых API, разработки стратегий деградации, настройки плагинов шлюза, динамического управления конфигурацией, мониторинга и оповещений, а также оценки эффективности, команды могут гибко решать различные вызовы, обеспечивая стабильность системы даже под нагрузкой.