#01API-шлюз / Highload

Raven Gate

Высоконагруженный API-шлюз с rate limiting, JWT-авторизацией и горячей перезагрузкой маршрутов.

  • Go
  • Redis
  • PostgreSQL
  • Kubernetes
  • NGINX Ingress
  • Prometheus
Исходный код закрыт соглашением о неразглашении Обсудить похожий проект

Результаты в цифрах

  • 120k

    запросов в секунду на пике

  • <8 мс

    задержка p99

  • 99.98%

    аптайм за полгода

  • −42%

    расходы на инфраструктуру

01

Задача

Старый монолитный прокси не выдерживал пиковых нагрузок, а любое изменение маршрутов требовало перезапуска и приводило к простоям.

02

Решение

Написали шлюз на Go с распределённым rate limiting в Redis, валидацией JWT на лету и конфигурацией маршрутов в PostgreSQL с горячей перезагрузкой. Развернули за NGINX Ingress с автоскейлингом в Kubernetes.

03

Результат

Шлюз держит пиковые нагрузки без деградации, маршруты меняются без простоя, а метрики в Prometheus дают полную картину трафика.

Ключевые возможности

  • 01 Распределённый rate limiting по ключу, IP и тарифу
  • 02 Горячая перезагрузка маршрутов без разрыва соединений
  • 03 mTLS между сервисами и ротация ключей
  • 04 Canary-релизы и автоматический откат

Архитектура

  1. Clients веб и мобильные приложения
  2. NGINX Ingress TLS, балансировка
  3. Raven Gate Go, авторизация, лимиты
  4. Redis счётчики лимитов
  5. Services 30+ микросервисов

Технологии

  • Go
  • Redis
  • PostgreSQL
  • Kubernetes
  • NGINX Ingress
  • Prometheus

Этапы работы

  1. 1 неделя

    Аудит текущей системы

  2. 2 недели

    Архитектура и прототип

  3. 7 недель

    Разработка и интеграция

  4. 2 недели

    Нагрузочные тесты и запуск

Нужно что-то похожее?

Опишите задачу в мессенджере — вернёмся с вопросами, архитектурой и оценкой.