Перейти к содержимому

Всё ещё используете 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...