Spring Boot — Web против Webflux для RESTAPI

Я пытаюсь решить, использовать ли Spring Web или Webflux для RESTAPI.

Я провел исследование и прочитал от многих разработчиков на форумах, что Webflux не так уж и хорош из-за того, что его сложно кодировать и отлаживать, а в некоторых случаях он может даже быть медленнее, чем Web.

Однако в официальных документах и ​​некоторых статьях говорится, что Webflux должен использовать системные ресурсы намного лучше и эффективнее.

Кроме того, некоторые люди говорят, что драйверы БД (R2DBC) могут быть довольно глючными в Webflux.

Итак, вот мои вопросы:

  1. В настоящее время Webflux все еще глючит?
  2. Действительно ли программирование (с использованием Kotlin) в Webflux сильно отличается от Web? Я использую Kotlin и выполнил несколько демонстрационных проектов, и Web и Webflux кажутся мне очень похожими.
  3. Неужели отладка в Webflux в настоящее время все еще так сложна? Если да, и если подумать в долгосрочной перспективе, НЕ стали бы вы использовать Webflux из-за этого?
  4. Является ли Webflux прямым улучшением/обновлением Web? Если нет, можете ли вы сказать мне, почему? В каких случаях вы бы использовали Web вместо Webflux, учитывая, что Webflux использует ресурсы более эффективно?
  5. Делает ли Virtual Thread из Java 21 Web лучшим выбором, чем Webflux? Я читал, что Virtual Thread изменит правила игры в Интернете. Это правда?

Спасибо, что помогли мне это прояснить!😁

0
0
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. В настоящее время Webflux все еще глючит? Нет, webflux — это реактивный подход к программированию. Это может быть трудно понять людям, у которых больше опыта работы со старым способом MVC.
  2. Действительно ли программирование (с использованием Kotlin) в Webflux сильно отличается от Web? Я использую Kotlin и выполнил несколько демонстрационных проектов, и Web и Webflux кажутся мне очень похожими. Это похоже на кодирование, но поток выполнения кода отличается. Это означает, что перехват ответов от БД или любого другого вызова работает немного иначе, чем обычные старые способы.
  3. Неужели отладка в Webflux в настоящее время все еще так сложна? Нет. Если да, и если подумать в долгосрочной перспективе, НЕ стали бы вы использовать Webflux из-за этого? Webflux может потребовать более тонкой настройки потоков, но, в конце концов, это одно и то же при другом подходе, если вы готовы поступить таким образом, сделайте это, потому что Webflux достаточно зрелый, вы можете учиться и делиться.
  4. Является ли Webflux прямым улучшением/обновлением Web? Нет. Если нет, можете ли вы сказать мне, почему? Поскольку я пока не видел доказательств, это лучше, чем нереактивный подход. В каких случаях вы бы использовали Web вместо Webflux, учитывая, что Webflux использует ресурсы более эффективно? В основном я бы использовал Web вместо webflux, затем, если у меня большая нагрузка, я бы проводил A/B-тесты и сравнивал производительность, на которую может повлиять дизайн БД и сеть, webflux в основном обещает лучшую производительность при большой нагрузке, но без тщательного тестирования я не поверил бы и это меняет каждое приложение и БД
  5. Делает ли Virtual Thread из Java 21 Web лучшим выбором, чем Webflux? Возможно, я читал, что Virtual Thread изменит правила игры в Интернете. Это правда? Они выглядят блестящими, но я не уверен, что это принесет пользу webflux, проверьте здесь.

Я тестирую webflux в течение длительного времени, я вижу, что у webflux лучшие показатели, чем у Spring Web (иногда - проверяйте различные тесты на странице), но мой тест зависит только от сериализации json, если мы вставим На уровне БД все цифры будут меняться, приложение к приложению и дизайн к дизайну, мы должны протестировать и принять решение после.

Другие вопросы по теме