← Cloudflare Load Balancing / load-balancing / understand-basics
Как конечные точки и пулы становятся нерабочими
Когда речь идет о динамической балансировке нагрузки, это означает, что ваш балансировщик нагрузки направляет запросы только на те конечные точки, которые способны обработать трафик.
Но как ваш балансировщик нагрузки знать какие эндпоинты могут обрабатывать трафик? Мы определяем это с помощью системы мониторов, мониторов работоспособности и пулов.
Динамическая балансировка нагрузки
Динамическая балансировка нагрузки реализуется благодаря сочетанию пулы, мониторы и проверки работоспособности.
flowchart RL
accTitle: Load balancing monitor flow
accDescr: Monitors issue health monitor requests, which validate the current status of servers within each pool.
Monitor -- Health Monitor ----> Endpoint2
Endpoint2 -- Response ----> Monitor
subgraph Pool
Endpoint1((Endpoint 1))
Endpoint2((Endpoint 2))
end
Как конечная точка становится нерабочей
Проверки работоспособности представляют собой запросы, которые монитор отправляет через регулярные промежутки времени и, в зависимости от настроек монитора, возвращают pass или сбой значение, чтобы убедиться, что конечная точка всё ещё может принимать трафик.
Каждый запрос монитора работоспособности пытается ответить на два вопроса:
- Конечная точка недоступна?: Отвечает ли конечная точка вообще на запрос монитора работоспособности? Если да, происходит ли это достаточно быстро (как указано в настройках монитора Тайм-аут поле)?
- Конечная точка работает корректно?: Отвечает ли конечная точка ожидаемыми кодами HTTP-ответа? Содержит ли она определённую информацию в теле ответа?
Если ответ хотя бы на один из этих вопросов «Нет», конечная точка не проходит запрос монитора работоспособности.
Для каждого варианта, выбранного в поле пула Регионы монитора работоспособности, Cloudflare отправляет запросы монитора работоспособности из трёх отдельных дата-центров в этом регионе.
Если большинство дата-центров данного региона успешно проходят запросы монитора работоспособности, этот регион считается работоспособным. Если работоспособно большинство регионов, то и сама конечная точка считается работоспособной.
Аналитика и журналы балансировки нагрузки показывают только глобальные изменения состояния.
Для большей точности и согласованности при изменении статуса состояния конечной точки можно также задать consecutive_up и consecutive_down параметров через Эндпоинт API для создания монитора. Чтобы конечная точка перешла из состояния работоспособной в неработоспособную, она должна быть подряд помечена как работоспособная заданное количество раз (задаётся consecutive_down). То же самое касается перехода от неработоспособного к работоспособному состоянию, для consecutive_up.
Как пул становится нерабочим
Когда отдельная конечная точка перестаёт быть работоспособной, которые могут повлиять на статус работоспособности связанных пулов (отображается на панели управления):
- Исправно: все конечные точки исправны.
- Degraded: хотя бы одна конечная точка неисправна, но пул всё равно считается исправным и может получать трафик.
- Критический: пул опустился ниже числа доступных конечных точек, указанного в его Порог работоспособности и не будет получать трафик от вашего балансировщика нагрузки (если только другие пулы также не станут неработоспособными, а этот пул не будет отмечен как Резервный пул).
- Работоспособность неизвестна: к конечным точкам пула не подключены мониторы, либо мониторы ещё не определили их состояние.
- Проверка работоспособности не выполнена: зарезервировано в рамках вашего балансировщика нагрузки для Резервный пул.
Распределение трафика
Когда пул достигает уровня работоспособности Критический работоспособности балансировщик нагрузки начнёт перенаправлять трафик в соответствии с его Политика управления трафиком:
-
Off:
- Если активный пул становится нерабочим, трафик переходит к следующему пулу по порядку.
- Если неактивный пул становится нерабочим, трафик продолжает поступать в активный пул (при этом нерабочий пул пропускается в порядке переключения при сбое).
-
Все остальные методы: трафик распределяется между всеми оставшимися пулами согласно политике балансировки трафика.
Резервные пулы
Этот пул предназначен для использования в последнюю очередь: его состояние не учитывается при направлении трафика.
Резервные пулы важны, потому что трафик может продолжать поступать на ваш балансировщик нагрузки даже тогда, когда все пулы недоступны (отключены или неработоспособны). В этом случае балансировщику нагрузки нужно куда-то направить трафик, поэтому он отправляет его в резервный пул.
Как балансировщик нагрузки становится нерабочим
Когда один или несколько пулов становятся неработоспособными, ваш балансировщик нагрузки может также отображать в дашборде другой статус:
- Исправно: все пулы исправны.
- Degraded: хотя бы один пул неисправен, но трафик пока не направляется в Резервный пул.
- Критический: все пулы неисправны, и трафик направляется в Резервный пул.
Если балансировщик нагрузки достигает Критический работоспособности, а пул, служащий резервным, также отключён:
- Если Cloudflare проксирует имя вашего хоста, вы увидите ошибку 530 HTTP/1016 Origin DNS failure.
- Если Cloudflare не проксирует имя вашего хоста, вы увидите запись SOA.