Компания Netflix объявила об открытии кода проекта Hystrix, в рамках которого подготовлена библиотека для контроля отзывчивости компонентов в больших распределённых системах и обеспечения оперативного переконфигурирования и изоляции проблем с целью предотвращения каскадных сбоев на раннем этапе выявлении отклонений от нормы. Код библиотеки написан на языке Java и распространяется под лицензией Apache. В дальнейшем планируется опубликовать код интерфейса для мониторинга за работой сервисов, использующих Hystrix.
Работа Hystrix основана на управлении взаимодействием между распределёнными системами, предоставляя для каждого сервиса запасной ('fallback') вариант реагирования в случае выявления проблем. Использование библиотеки даёт возможность создать средства защиты для ситуаций, в которых выход из строя или перегрузка некоторых узлов системы, приводит к возрастанию нагрузки на другие узлы, которые, в итоге, не справляются с наплывом запросов, что может привести к остановке работы всего сервиса. Например, к предоставляемому сервисом Netflix API ежедневно отправляется более миллиарда запросов в день, которые в свою очередь, приводят примерно к 6 миллиардам вызовам к внутренним системам. В пиковые моменты интенсивность обращений доходит до 100 тысяч запросов в секунду. Netflix обеспечивает обратную связь и позволяет остановить наводнение запросами на уровне начального обработчика API, в случае, когда внутренние обработчики перестают справляться с нагрузкой.
|