Прежде всего, вам необходимо знать, что происходит при использовании проекта-реактора - клиента webflux.
Давайте предположим, что ваша конечная точка (call / demo) отвечает за выполнение 5 асинхронных вызовов в другие системы для возврата ответа от себя.
Пример времени ответа:
- Сервис A: 5 мс
- Служба B: 50 мс
- Сервис C: 100 мс
- Служба D: 250 мс
- Сервис E: 400 мс
Типичный путь клиента без Weblux:
использовано 5 потоков, последний заблокирован на 400 мс.
Путь клиента Webflux:
Каждый вызов службам A, B, C, D, E потребляет один поток, выполняет вызов, возвращает поток, а когда приходит ответ, другой поток используется для обработки ответа.
Окончательный вывод:
Если ваша система будет перегружена большим количеством запросов (пусть это будет n), в то же время вы заблокируете n потоков на 400 мс.
Попробуйте представить масштаб проблемы.