Spring WebFlux与标准Spring Boot,TomCat,Jetty,Servlet 3.1,Netty相比有哪些优势?

时间:2017-10-05 17:58:26

标签: spring-webflux

据我了解 - 有机会消耗更少的RAM和CPU。

据我所知,Servlet 3.1已经使用了NIO。速度和/或装载有什么优势吗?

1 个答案:

答案 0 :(得分:6)

这是一个相当广泛的主题 - 但我们首先要清楚一点。

  • Spring MVC是一个基于Servlet API的Web框架;这些应用程序可以部署在Servlet容器上(如Jetty,Tomcat,Undertow)。
  • Spring WebFlux是一个基于反应式HTTP层的反应式Web框架;此类应用程序可以部署在Netty或Undertow(使用本机适配器)或Jetty / Tomcat /任何Servlet 3.1容器上(感谢Servlet 3.1适配器)。
  • Spring Boot应用程序可以使用Spring MVC或Spring WebFlux

Spring Framework 5.0提供了FAQ about that with several useful resources。简而言之,这种方法对于处理大量延迟和并发的工作负载的效率和可伸缩性是有益的。

实际上,Servlet 3.1异步I / O也解决了这些问题,但使用该API需要不使用阻塞的Servlet API的其他位。这就是为什么Spring WebFlux不会在其编程模型中公开Servlet API,而是利用Servlet适配器。