Всё ещё используете JPA в Spring Boot? ⚠️ | Туториал по Spring WebFlux + R2DBC 🚀
Selenium Express
0:00 / 0:00
Всё ещё используете JPA в Spring Boot? ⚠️ | Туториал по Spring WebFlux + R2DBC 🚀
8 887 просмотров · 1 год назад
Selenium Express
129 тыс. подписчиков
8 887 просмотров · 1 год назад
🔥 Все еще используете JPA в Spring Boot? Возможно, это замедляет вашу работу!
В этом подробном руководстве мы покажем вам, почему JPA (Hibernate + JDBC) не предназначен для реактивной производительности, и как создавать невероятно быстрые, неблокирующие API с помощью Spring WebFlux + R2DBC.
Мы начнем с понимания ограничений моделей «поток на запрос» (например, Tomcat) и того, как они терпят неудачу при высокой параллельности. Затем мы углубимся в реактивную архитектуру на базе Netty, где потоки эффективно используются повторно, что делает ваши приложения готовыми к масштабируемым рабочим нагрузкам в реальном времени.
В этом видео рассматриваются следующие темы:
🔄 Блокирующий и неблокирующий ввод-вывод с визуализацией потоков в реальном времени
🧵 Почему больше потоков ≠ лучше производительность
⚠️ Почему JDBC и JPA могут блокировать ваш реактивный поток
🚀 Как передавать данные в реальном времени с помощью Flux и MediaType.TEXT_EVENT_STREAM
💡 Объяснение R2DBC: необходимый вам драйвер реактивной базы данных
🧰 Полная настройка Spring Boot с Spring WebFlux + Spring Data R2DBC + MySQL
🔍 Реактивный репозиторий (ReactiveCrudRepository) в действии
🧪 Анализ потоков, подсказки по обратному давлению и логи в реальном времени
✅ Бонус: Моделирование задержки с использованием SQL SLEEP() для доказательства неблокирующего поведения
К концу этого видео у вас будет полнофункциональный реактивный проект Spring Boot с нативным сервером Netty и полностью неблокирующей интеграцией с базой данных — без каких-либо затрат ресурсов. Блокировка узких мест.
✅ Используемый технологический стек:
Spring Boot 3.x
Spring WebFlux
Project Reactor
Spring Data R2DBC
MySQL (Reactive Driver)
IntelliJ IDEA (опционально)
Java 17+
📌 Временные метки
00:00 - Многоуровневая архитектура в Spring Boot: объяснение
02:49 - Модель «поток на запрос» в Tomcat (и её ограничения)
05:32 - Ядра ЦП против потоков: почему блокировка снижает производительность
11:02 - Как Netty повторно использует потоки в реактивных системах
12:38 - Spring WebFlux и R2DBC: создание действительно неблокирующих API
15:41 - Настройка реактивного проекта Spring Boot (WebFlux + R2DBC)
21:01 - Потоковая передача данных с помощью Flux.just() в WebFlux
23:12 - Ответы API в реальном времени с использованием MediaType.TEXT_EVENT_STREAM
26:20 - Создание реактивного REST API с помощью Spring Boot
30:05 - Что не могут делать виртуальные потоки: объяснение обратного давления
32:57 - Подключение реактивного приложения Spring к базе данных
34:11 - Блокирующие и реактивные драйверы: почему JPA не работает
36:19 - Что такое R2DBC? Неблокирующая альтернатива JDBC
40:23 - Интеграция MySQL со Spring Data R2DBC
47:45 - Использование ReactiveCrudRepository в Spring
49:09 - Использование findAll() R2DBC для запроса к базе данных
51:09 - Полный поток: Контроллер → Сервис → Репозиторий (реактивный стиль)
56:05 - Имитация задержек в реактивных вызовах к базе данных (неблокирующая демонстрация)
58:16 - Использование пользовательского запроса с SQL Sleep для имитации задержки
1:02:45 - Журналы переключения потоков в реальном времени: реактивный поток выполнения
1:07:07 - Сравнение Spring Data JPA и Spring Data R2DBC
1:16:02 - Домашнее задание: Попробуйте с PostgreSQL или H2
1:19:50 - Переписывание конечной точки с использованием функционального программирования 1:33:17 - Что такое пул потоков по умолчанию в R2DBC?
1:34:39 - Может ли этот код работать с Tomcat вместо Netty?
1:35:56 - Где следует использовать Spring WebFlux в реальных проектах?
💼 Больше бесплатных/платных курсов на сайте
www.seleniumexpress.com
💼 Бонус: Отлично подходит для подготовки к собеседованию по Spring Boot!
Это видео даст вам глубокое понимание современной архитектуры бэкенда, особенно в отношении:
Разницы между блокирующей и неблокирующей системами
Когда выбирать WebFlux вместо традиционного MVC
Почему JPA не работает в реактивных сценариях
Как R2DBC и реактивные репозитории работают изнутри
Реальные примеры многопоточности, производительности и обратного давления
Освоение этих концепций поможет вам выделиться на собеседованиях на должности Java-бэкенд-разработчика, специалиста по Spring Boot или программиста реактивных приложений.
#springwebflux #springboot
🎓 Связанные курсы – для справки
📘 Java Streams и лямбда-выражения
• Stream API in Java : Foundation | Java 8
⚡ Реактивный Java с Project Reactor
• Reactive Programming 01 - Java Stream Vs R...
🔁 Обобщения в Java
• From Beginner to Expert: Why Java Generic...
🌐 Spring Boot Краткий курс
• Spring Vs Spring Boot - Why Spring Boot ? ...
▶️ Микросервисы Spring Boot
• What the heck is Spring Cloud ? An Introdu...
▶️ Основы Apache Kafka
• Apache Kafka Tutorial for Beginners - Setu...
▶️ Spring Boot Camp (БЕСПЛАТНО)
https://www.youtube...