Springboot 有一些方法来服务 Web 请求:
从 MVC 切换到 webflux 可以节省哪些资源使用?
请参阅 https://github.com/barrett-rob/kotlin-springboot-reactive-resource-usage,快速比较 Spring Boot 每个请求的资源使用情况与反应式方法与传统 MVC 方法的比较。
这个实验是人为的 - 三个示例之间的区别只是 Web 请求处理层的线程行为。如果您在底层 IO 操作中引入更多变化,您的结果将会有所不同,但通常会显示以下结果:
传统 MVC 使用的线程最多,协程大约只有一半,而 Reactor 甚至更少。 传统 MVC 使用的堆/内存最多,协程较少,而 Reactor 则更少。 由此得出的一些想法:
如果最小化每个请求的计算成本是您的唯一目标,那么选择 Reactor,但会牺牲命令式编码风格。 与 MVC 相比,协程在不改变编码风格的情况下提供了明确的内存和线程优势。