Netflix TechBlog | Medium на русском
Подписаться
Увеличение надежности Netflix с помощью приоритетного отключения нагрузки по уровням сервисов
Netflix реализовал технику регулирования нагрузки на уровне сервиса, чтобы улучшить пользовательский опыт и устойчивость системы. Эта техника приоритизирует критически важные запросы, инициируемые пользователем, над некритическими запросами предварительного загрузки в рамках одного и того же сервиса. Реализуя ограничитель параллельности с разбивкой, PlayAPI, критический бэкэнд-сервис, распределяет 100% пропускной способности на критические запросы и использует избыточную мощность для некритических запросов. Эта приоритизация обеспечивает высокую доступность запросов, инициируемых пользователем, даже во время пиков нагрузки или высоких задержек. Успех этого подхода привел к разработке универсальной библиотеки для приоритизации сервисов, позволяющей сервисам определять несколько уровней приоритета. Эта библиотека использует загрузку CPU как меру системной нагрузки, постепенно отключая трафик с более низким приоритетом, чтобы поддерживать пользовательский опыт и обеспечивать больше времени для автоматического масштабирования. Эксперименты показали, что такой подход эффективно отключает некритический и критический трафик в условиях экстремальной нагрузки, поддерживая разумные задержки и стабильный пропускной способности. Netflix подчеркивает важность избежания анти-шаблонов, таких как полное отсутствие отключения или конгестивный сбой, которые могут ухудшать пользовательский опыт или привести к нестабильности системы.