System Design middle
Кейс: сервис A — 1000 TPS, сервис B — 200 TPS. Как защитить B?
Ответ
Rate limiter на стороне A (ограничить исходящие). Kafka как буфер: A пишет в топик → B читает со своей скоростью (backpressure). Circuit Breaker: при перегрузке B → A получает fallback.
Разбор: Правильная защита — ограничить или сгладить поток: rate limiter на исходящих у A, Kafka как буфер с backpressure (B читает в своём темпе), Circuit Breaker с fallback при перегрузке B. Тупое масштабирование B не всегда возможно и дорого; безграничная очередь приводит к росту памяти и лавинообразным таймаутам; а синхронная блокировка A резко роняет пропускную способность самого A и порождает каскад зависших потоков.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.