目录
传统的基于Servlet的Web框架,如Spring MVC,在本质上都是阻塞和多线程的,每个连接都会使用一个线程。在请求处理的时候,会在线程池中拉取一个工作者( worker )线程来对请求进行处理。同时,请求线程是阻塞的,直到工作者线程提示它已经完成为止。
首先webflux不是spring mvc的替代方案,webflux强调的是异步非阻塞,spring mvc强调的是同步阻塞,如果方案大部分偏向于非同步,则spring webflux才是首选。另外,如果依赖了大量阻塞式持久化 API 和网络 API,建议使⽤ Spring MVC。
WebMVC:springMvc构建在servlet api之上,因此需要Servlet容器(比如Tomcat)才能执行。使用的是同步阻塞式IO模型,每一个请求对应一个线程去处理。
WebFlux:spring webflux是一个异步非阻塞式的web框架,它能够充分利用多核cpu的硬件资源去处理大量的并发请求。
相同之处
都可以使用springmvc注解,如@Controll
Spring WebFlux:异步非阻塞的Web框架
Spring WebFlux是Spring提供的一个异步非阻塞的Web框架,与传统的Spring MVC不同,它强调异步处理,适合高并发场景。尽管WebFlux不是Spring MVC的替代品,但在非同步需求主导的情况下,WebFlux更具优势。WebFlux支持两种编程模型:基于注解和函数式。基于注解的模型类似于Spring MVC,可以使用相同的注解,并且可以与Spring MVC自由转换。而WebFlux默认使用Netty服务器,这是一个异步、事件驱动的选择,非常适合WebFlux。在实际应用中,需要根据项目需求选择使用Mono和Flux等反应式类型。
订阅专栏 解锁全文
1037

被折叠的 条评论
为什么被折叠?



