Spring webflux SpringWebFlux与标准SpringBoot、TomCat、Jetty、Servlet3.1和Netty相比有哪些优势?
据我所知,有机会消耗更少的RAM和CPUSpring webflux SpringWebFlux与标准SpringBoot、TomCat、Jetty、Servlet3.1和Netty相比有哪些优势?,spring-webflux,Spring Webflux,据我所知,有机会消耗更少的RAM和CPU 据我所知,Servlet3.1也已经在使用NIO了。在速度和/或加载方面有什么优势吗?这是一个相当广泛的话题,但让我们先把事情弄清楚 SpringMVC是一个基于ServletAPI的web框架;这样的应用程序可以部署在Servlet容器(如Jetty、Tomcat、Undertow)上 SpringWebFlux是一个基于反应式HTTP层的反应式web框架;这类应用程序可以部署在Netty或Undertow(使用本机适配器)或Jetty/Tomcat
据我所知,Servlet3.1也已经在使用NIO了。在速度和/或加载方面有什么优势吗?这是一个相当广泛的话题,但让我们先把事情弄清楚
- SpringMVC是一个基于ServletAPI的web框架;这样的应用程序可以部署在Servlet容器(如Jetty、Tomcat、Undertow)上
- SpringWebFlux是一个基于反应式HTTP层的反应式web框架;这类应用程序可以部署在Netty或Undertow(使用本机适配器)或Jetty/Tomcat/任何Servlet3.1容器上(感谢Servlet3.1适配器)
- SpringBoot应用程序可以使用SpringMVC或SpringWebFlux
事实上,Servlet3.1异步I/O也解决了这些问题,但使用该API需要避免使用ServletAPI中阻塞的其他部分。这就是为什么SpringWebFlux没有在其编程模型中公开ServletAPI,而是利用Servlet适配器的原因。谢谢您的回答。我还有一个问题:Servlet3.1是否具有与Netty相同的速度/响应时间/连接效率?毕竟,它们都使用NIO。事实上没有太大的区别,但这可能取决于您的用例。此外,在http客户端突然断开连接等并不少见的用例中,它们的行为也会有所不同。