
Комментарии 2
Полезная идея, особенно про сайты, которые пускают только с определенных адресов. Интересно, как балансировщик ведет себя с долгими соединениями вроде загрузки больших файлов или WebSocket: метрика времени ответа для них ведь сильно искажается. И как быстро он возвращает прокси в ротацию после того, как сайт через него снова начал работать?
Про возврат в ротацию - активных проверок нет, fairway учится только на реальном трафике. Поэтому:
Пока бан идёт, прокси для этого сайта не используется, даже если сайт уже починился. Ждать придётся до конца бана: 5 минут после первого, потом 10, 20, 40 и до часа, если прокси банят подряд. Если вы знаете, что проблему устранили, есть кнопка Снять бан.
Как только бан кончился, следующий же запрос к этому сайту уходит на проверку именно через этот прокси, вне очереди. Пока проверка не завершилась, других запросов он не получает.
Проверка прошла - прокси сразу снова в лотерее, а счётчик банов подряд обнуляется.
Дальше скорость возврата зависит от причины бана. Если банили за 403 (сайт не пускал адрес), то в долю ошибок такие ответы не идут, и прокси сразу получает свою обычную долю трафика. Если банили за обрывы соединения, они подняли долю ошибок, и та остывает по скользящему среднему: каждый успешный запрос снижает её на четверть. Примерно после 5 успешных запросов прокси получает половину прежней доли, после 10 - почти всю. Эти запросы гарантированы: 10% трафика уходит на разведку как раз для этого. На загруженном домене это минуты, на редко используемом - дольше.
Если провалы были давно и запросов с тех пор не было, история тоже забывается: через max_ban_duration после конца последнего бана следующий бан снова начнётся с 5 минут.
С WebSocket два случая:
С расшифровкой fairway видит, что это WebSocket, и учитывает только время до ответа 101. Скорость для сокета не считается, так что сколько бы он ни жил, рейтинг он не портит.
Без расшифровки для fairway это обычный туннель. Если сокет часто шлёт мелкие сообщения, замер скорости выйдет заниженным. Но один туннель даёт один замер, поэтому средняя скорость прокси просядет примерно на четверть, а не обнулится.
Fairway: балансировщик корпоративных прокси, который сам выясняет, какой выход лучше для какого сайта