Часть 1. Почему Quarkus — не просто ещё один фреймворк
Quarkus — это попытка переосмыслить Java-фреймворк для облачной эпохи. Это фреймворк, который:Часть 2. Архитектурные отличия: почему Quarkus быстрее
Перенос работы на этап сборкиКлючевое отличие Quarkus от Spring Boot — инверсия времени выполнения. Spring делает всю тяжёлую работу во время старта приложения: создаёт контекст, анализирует аннотации, строит зависимости. Quarkus же выполняет часть этой работы на этапе сборки.
Результаты эксперимента (одинаковые приложения на одинаковых условиях):
| Параметр | Quarkus | Spring Boot | Выигрыш |
|---|---|---|---|
| Время старта | ~0,99 сек | ~1,67 сек | ~40% быстрее |
| Потребление памяти после старта | ~80 МБ | ~120 МБ | на 36% меньше |
| Первый HTTP-ответ | быстрее | медленнее | на 20–33% быстрее |
Нативная компиляция через GraalVM
Quarkus позволяет собирать приложения в нативный код для конкретной ОС. Это даёт:
Часть 3. Асинхронность как архитектурный принцип
Quarkus использует Vert.x и Netty — это позволяет обрабатывать запросы асинхронно, не блокируя потоки процессора.Что это даёт на практике:
Критическое отличие от Spring: Quarkus поддерживает асинхронный Hibernate и асинхронный SOAP «из коробки». Spring требует для этого сторонних решений.
Часть 4. Реальный кейс: интеграция с платёжной системой
На одном из проектов требовалась асинхронная интеграция с платёжной системой по SOAP. Spring Boot не умел работать с асинхронным SOAP и Hibernate из коробки. Команда выбрала связку Kotlin + Quarkus.Что получили:
Какие были сложности:
Главный вывод: Quarkus отлично подходит для новых проектов без legacy-зависимостей.
Часть 5. Кому и когда переходить на Quarkus
Переход оправдан, если:Переход рискован, если:
Вместо заключения
Quarkus — это инженерное решение для облачной эпохи. Он даёт измеримые преимущества в скорости, памяти и асинхронности, но требует осознанного подхода к миграции. И его стоит как минимум изучить, чтобы понимать, какие альтернативы Spring существуют и когда они могут стать лучшим выбором.Подробнее — в записи вебинара.
