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