Ответ
Да, проект был высоконагруженным (Highload). Мы разрабатывали масштабируемое REST API на Spring Boot с микросервисной архитектурой.
Ключевые метрики и технологии:
- Нагрузка: ~10 000 запросов в секунду (RPS) с пиками до 50 000.
- Кеширование: Redis для хранения сессий и часто запрашиваемых данных.
- Асинхронная обработка: Apache Kafka для обработки событий (например, нотификаций, аналитики).
- База данных: PostgreSQL с горизонтальным шардированием по ключу пользователя и read-репликами.
- Мониторинг: Prometheus для сбора метрик и Grafana для визуализации.
Пример оптимизации — кеширование в сервисе:
@Service
public class UserService {
@Cacheable(value = "users", key = "#id")
public User getUserById(Long id) {
// Запрос выполняется только при промахе кеша
return userRepository.findById(id)
.orElseThrow(() -> new UserNotFoundException(id));
}
}
Почему это важно: Без кеширования каждый запрос создавал бы нагрузку на БД. Благодаря горизонтальному масштабированию (Kubernetes) и оптимизированным запросам система успешно справлялась с пиковыми нагрузками.