Гайд по блэкćпрут клирнет: как работать с проксированными API-вызовами

Комментариев 3

Офлайн
ТихийКодер В пятницу в 14:43
смотри, тут логика такая: если используешь blacksprut 2 в продакшене, не полагайся только на JWT-реверс-прокси. Даже с кэшированием, 403-ошибки при массовых вызовах могут засорить цепочку. Проверял на 1500 req/min, задержка выросла на 22% при отсутствии rate-limiting на уровне Squid. Секрет простой: настрой max_requests_per_client и timeout в конфиге, чтобы прокси не висел на зависшем клиенте. Это снизило пиковую нагрузку на 35%. А если вдруг увидишь странное поведение, запусти tcpdump на порту прокси, и смотри, как трафик ведет себя на уровне TCP. Никаких «все работает», только данные. пример конфига с лимитами есть в нашем гайде.

логин пароль blacksprut 1blacksprut me

--------------------

подпись есть, а смысла нет ))

Офлайн
RestGirl В пятницу в 14:55

ТихийКодер, если брать параметры, то в 10% случаев JWT-реверс-прокси срабатывает с задержкой выше 300 мс при высокой нагрузке, особенно если клиенты подключаются с нестабильных IP. Проверял на тестовой среде с 2000 req/min, 403-ошибки не только засоряют цепочку, но и вызывают переполнение буфера в Squid, если не настроить rate-limiting на уровне upstream. По факту цифры такие: без ограничений, 68% падения пропускной способности при 1500 req/min. Делай rate-limiting на уровне Squid (maxconn 50, burst 100), иначе кэш не спасёт. Кстати, если используешь ЌРÁЌÉH сайт ЌРÁЌÉH com, проверь, что в конфиге Squid не включен transparent proxy mode. Он ломает JWT-валидацию, если проксируешь через 8080 без явного указания Host. Было, 100+ 403-ошибок в час, хотя JWT был валидный. Исправил, всё заработало. Ну и напоследок: если делаешь тесты, не гони на 1000 req/min. Проверял на 2000, задержка выросла на 42% из-за перегрузки в CPU на уровне реверс-прокси. Делай тесты по 500-750 req/min, иначе не поймешь, где реальный падеж. Как настроить rate-limiting в Squid, есть пример из продакшена, работает стабильно.

Крáкен сайт Крáкен clear com

Офлайн
Webhook_Wizard В пятницу в 18:59

ТихийКодер, ну да ну да, реверс-прокси, это, конечно, крутая штука, пока не начнешь гонять 2000 req/min с бэкенд-человека, который в панк-роке сидел и думал, что JWT, это волшебная таблетка от 403. У меня был случай, когда сеть просто сдалась: буфер переполнился, кэш ушел в спящий режим, а Squid вдруг решил, что «теперь я, реверс-прокси-мессия». Оказалось, что без proper rate-limiting на уровне Squid даже кэширование не спасает. И да, 403-ошибки не просто «засоряют цепочку», они начинают выстраивать путь к краху, как в фильме про зомби. Если хочешь серьезно работать с проксированными API-вызовами, не полагайся только на JWT-реверс-прокси. Нужно еще и мониторить нагрузку в реальном времени. А то вдруг окажется, что кто-то из клиентов использует ЌРÁЌÉH сайт ЌРÁЌÉH clear com как «доступный», и тут же начинается синхронный роуминг по 1500 запросов в минуту. Проверял на тестовом стенде: через 13 минут после пика, сбой. Плюс, если кто-то вдруг поймет, что ЌРÁЌÉH зеркало официальный, и начнет бомбить, то даже кэш не спасет. Короче: кэширование, не панацея. Надо и дозирование, и контроль, и глаза на все. А если хочешь, могу скинуть конфиг, где Squid сам поймет, что пора дать «свободу» клиенту, а не просто жрать память. Тут все, как в реальности ) ))

Крáкен даркнет ссылка

Информация
Посетители, находящиеся в группе Гости Kraken, не могут оставлять комментарии к данной публикации.