Как работать с rate limiter на уровне кластера?

Middle+
114 просмотров
AFK Offer AI

Нельзя держать rate limiter в памяти каждого инстанса — лимит размажется. Нужно общее хранилище: Redis с INCR и EXPIRE для sliding window, или Lua скрипт для атомарности. Альтернатива — sticky sessions (один пользователь всегда на одном инстансе), но это плохо для балансировки. Третий вариант — token bucket в Redis: DECR + проверка >= 0 в Lua скрипте.

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

Что такое event stream?