Встречается на собеседованиях • сегодня

Приходилось ли разрабатывать 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 False
text

**Где применял:**  
- API-сервисы (REST/gRPC) для защиты от DDoS и злоупотреблений.  
- Ограничение вызовов внешних API (например, Telegram Bot API).  

**Альтернативы:**  
- Фиксированное окно (`FixedWindow`).  
- Скользящее окно (`SlidingWindow`).  
- Готовые решения: Redis + `redis-cell`, `FastAPI-Limiter`.  

Важно учитывать race conditions в распределённых системах — тогда лучше использовать Redis с атомарными операциями.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы