Spring Boot - RESTAPI 的 Web 与 Webflux

问题描述 投票:0回答:1

我正在尝试决定是使用 Spring Web 还是 Webflux 作为 RESTAPI。

我做了研究,并在论坛上从很多开发人员那里了解到,Webflux 并不是那么好,因为编码和调试非常困难,在某些情况下甚至可能比 Web 慢。

但是,官方文档和一些文章说Webflux应该更好、更高效地利用系统资源。

此外,有些人说 DB 驱动程序 (R2DBC) 在 Webflux 上可能存在很多错误。

所以,这些是我的问题:

  1. 目前,Webflux 是否还有 bug?
  2. Webflux 上的编码(使用 Kotlin)实际上与 Web 上有很大不同吗?我使用 Kotlin 并做了一些演示项目,Web 和 Webflux 看起来与我非常相似。
  3. 目前Webflux调试还那么困难吗?如果是这样,从长远来看,你会因此而不再使用 Webflux 吗?
  4. Webflux 是 Web 的直接改进/升级吗?如果没有,你能告诉我为什么吗?鉴于 Webflux 更有效地使用资源,在什么情况下您会使用 Web 而不是 Webflux?
  5. Java 21 的虚拟线程是否使 Web 成为比 Webflux 更好的选择?我读到虚拟线程将成为 Web 的“游戏规则改变者”。这是真的吗?

感谢您帮我澄清这一点!😁

spring spring-boot kotlin spring-mvc spring-webflux
1个回答
0
投票
  1. 目前,Webflux 仍然有 bug 吗? 不,webflux是反应式编程方法。对于对旧的 MVC 方式有更多经验的人来说可能很难理解。
  2. Webflux 上的编码(使用 Kotlin)实际上与 Web 上有很大不同吗?我使用 Kotlin 并完成了一些演示项目,Web 和 Webflux 对我来说似乎非常相似。 从编码方面来看是相似的,但代码的运行流程不同。这意味着捕获来自数据库或任何其他调用的响应与常规的旧方法略有不同。
  3. 目前Webflux调试还那么困难吗? 如果是这样,从长远来看,你会因此不使用 Webflux 吗? Webflux 可能需要对线程进行更多的微调,但毕竟是不同方法的同一件事,如果你愿意这样做,就去做吧,因为 webflux 足够成熟,你可以学习和分享。
  4. Webflux 是 Web 的直接改进/升级吗? 如果没有,你能告诉我为什么吗? 因为到目前为止,我还没有看到任何证据表明它比非响应式方法更好。 鉴于 Webflux 更有效地使用资源,在什么情况下您会使用 Web 而不是 Webflux? 大多数情况下我会使用Web而不是webflux,那么如果我有重负载,我会进行A/B测试并比较性能,这可能会受到数据库设计到网络的影响,webflux主要承诺在重负载下有更好的性能,但没有彻底测试我不相信它,它改变了每个应用程序和数据库
  5. Java 21 的虚拟线程是否使 Web 成为比 Webflux 更好的选择? 也许 我读到虚拟线程将成为 Web 的“游戏规则改变者”。这是真的? 它们看起来很闪亮,但我不确定它会给 webflux 带来太多,请检查这里

我已经测试webflux很长一段时间了,我发现webflux比spring web有更好的数字(有时-检查页面上的不同测试),但我的测试仅依赖于json序列化,如果我们放入数据库分层所有数字都会改变,应用程序到应用程序和设计到设计我们应该测试并决定。

© www.soinside.com 2019 - 2024. All rights reserved.