Compress & Rank — подробный кейс
Распределенная система управления медиа-контентом с функцией интеллектуального сжатия и ранжирования. Построена на событийно-ориентированной архитектуре с использованием Apache Kafka для асинхронной обработки тяжелых задач и сбора статистики.
О проекте
CompressRankSystem — это современное решение для high-load сценариев работы с графикой. Система автоматически обрабатывает загружаемые изображения, оптимизируя их размер с использованием формата WebP. Микросервисы общаются через Kafka, что позволяет масштабировать обработку независимо от пользовательской нагрузки. Сервис ранжирования анализирует активность и формирует топы контента в реальном времени.
Демонстрируемые компетенции
- Событийно-ориентированная архитектура (EDA) на Kafka
- Асинхронная обработка тяжелых медиа-файлов
- Разработка алгоритмов ранжирования и статистики
- Построение микросервисного ландшафта (Gateway, Service Discovery)
Ядро системы
- AuthService: JWT, RBAC, управление сессиями
- API Gateway: Маршрутизация, Rate Limiting
- Service Discovery (через Docker networking/Config)
Обработка контента
- CompressionService: Асинхронное сжатие изображений (WebP)
- ImageStorageService: Хранение оригиналов и оптимизированных версий
- Admin Panel: Загрузка манги, управление главами и страницами
Аналитика и Ранжирование
- StatisticsService: Сбор метрик просмотров и скачиваний
- Kafka: Потоковая передача событий статистики
- Ranking: Алгоритмы ранжирования контента на основе популярности
Инфраструктура
- Docker Compose для оркестрации всех сервисов
- Централизованное логирование
- Изолированные базы данных для каждого микросервиса
Интерфейс платформы
Скриншоты и архитектурные схемы
Структура репозитория
Многомодульный проект на Gradle с четким разделением ответственности сервисов.