Портфолио / CompressRankSystem

Compress & Rank — подробный кейс

Распределенная система управления медиа-контентом с функцией интеллектуального сжатия и ранжирования. Построена на событийно-ориентированной архитектуре с использованием Apache Kafka для асинхронной обработки тяжелых задач и сбора статистики.

CompressRankSystem logo
Кейс
2025 • Pet‑project / R&D
Стек и инструменты
Java 21Spring Boot 3.4React 18TypeScriptKafka 3.6PostgreSQLWebPDocker ComposeGradle

О проекте

CompressRankSystem — это современное решение для high-load сценариев работы с графикой. Система автоматически обрабатывает загружаемые изображения, оптимизируя их размер с использованием формата WebP. Микросервисы общаются через Kafka, что позволяет масштабировать обработку независимо от пользовательской нагрузки. Сервис ранжирования анализирует активность и формирует топы контента в реальном времени.

Демонстрируемые компетенции

  • Событийно-ориентированная архитектура (EDA) на Kafka
  • Асинхронная обработка тяжелых медиа-файлов
  • Разработка алгоритмов ранжирования и статистики
  • Построение микросервисного ландшафта (Gateway, Service Discovery)
Microservices
архитектура
Kafka
message broker
5+
сервисов
React 18
frontend

Ядро системы

  • AuthService: JWT, RBAC, управление сессиями
  • API Gateway: Маршрутизация, Rate Limiting
  • Service Discovery (через Docker networking/Config)

Обработка контента

  • CompressionService: Асинхронное сжатие изображений (WebP)
  • ImageStorageService: Хранение оригиналов и оптимизированных версий
  • Admin Panel: Загрузка манги, управление главами и страницами

Аналитика и Ранжирование

  • StatisticsService: Сбор метрик просмотров и скачиваний
  • Kafka: Потоковая передача событий статистики
  • Ranking: Алгоритмы ранжирования контента на основе популярности

Инфраструктура

  • Docker Compose для оркестрации всех сервисов
  • Централизованное логирование
  • Изолированные базы данных для каждого микросервиса

Интерфейс платформы

Скриншоты и архитектурные схемы

Структура репозитория

Многомодульный проект на Gradle с четким разделением ответственности сервисов.

Открыть репозиторий
admin-panel/ (React + TS + Vite)
ApiGatewayCompressionRankSystem/ (Spring Cloud Gateway)
AuthService/ (Spring Security)
CompressionService/ (Обработка изображений)
ImageStorageService/ (Файловое хранилище)
StatisticsRankingService/ (Kafka Consumer, Analytics)
docker-compose.yml (Оркестрация)
webp_binaries/ (Утилиты сжатия)