Встречается на собеседованиях • сегодня
Как сделать блокирующий вызов в WebFlux приложении
Блокирующие вызовы в WebFlux нарушают реактивную модель и могут привести к деградации производительности. Однако, если необходимо выполнить такой вызов (например, JDBC или блокирующий API), следует:
- Вынести его в отдельный
SchedulerчерезMono/Flux.fromCallable() - Использовать
subscribeOn(Schedulers.boundedElastic())для изоляции блокирующего кода
Пример:
java
Mono.fromCallable(() -> {
// Блокирующий вызов
return blockingRepository.findById(id);
})
.subscribeOn(Schedulers.boundedElastic())Важно:
- Не используйте
block()в реактивном коде boundedElasticограничивает число потоков, предотвращая истощение ресурсов- По возможности заменяйте блокирующие API на реактивные аналоги (R2DBC вместо JDBC)

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы