Пишем распределенный rate-limiter на Apache Ignite своими руками
Backend-разработчики часто сталкиваются с задачами ограничения пропускной способности, для защиты системы от перегрузок, и не всегда эти задачи возможно решить на уровне инфраструктуры сетевых балансеров или API-гейтвеев.
Задача становится ещё сложнее, когда лимиты становятся распределенными. Только представьте, что кластера из десятков и сотен JVM должны корректно соблюдать общий для кластера лимит на частоту входящих запросов при входящем потоке десятки тысяч запросов в секунду.
Из данного доклада вы узнаете, как написать c нуля распределенный Rate-Limiter с помощью технологии Apache Ignite и алгоритма TokenBucket, и как обойти типичные проблемы производительности при реализации распределенного Rate-Limiter.