Встречается на собеседованиях • сегодня
Приходилось ли разрабатывать rate limiter
Да, приходилось. Rate limiter — это механизм для контроля частоты запросов, предотвращающий перегрузку системы.
Пример на Python с использованием token bucket алгоритма:
python
import time
class RateLimiter:
def __init__(self, capacity, refill_rate):
self.capacity = capacity
self.tokens = capacity
self.last_refill = time.time()
self.refill_rate = refill_rate # tokens per second
text
def allow_request(self):
now = time.time()
elapsed = now - self.last_refill
self.tokens = min(self.capacity, self.tokens + elapsed * self.refill_rate)
self.last_refill = now
if self.tokens >= 1:
self.tokens -= 1
return True
return Falsetext
**Где применял:**
- API-сервисы (REST/gRPC) для защиты от DDoS и злоупотреблений.
- Ограничение вызовов внешних API (например, Telegram Bot API).
**Альтернативы:**
- Фиксированное окно (`FixedWindow`).
- Скользящее окно (`SlidingWindow`).
- Готовые решения: Redis + `redis-cell`, `FastAPI-Limiter`.
Важно учитывать race conditions в распределённых системах — тогда лучше использовать Redis с атомарными операциями.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы