面试官:请问WebFlux与WebMVC有什么区别?

在构建响应式 Web 服务上,Spring 5 中引入了全新的编程框架,那就是 Spring WebFlux。作为一款新型的 Web 服务开发框架,它与传统的 WebMVC 相比具体有哪些优势呢?

Spring WebFlux 的应用场景

WebFlux 用于构建响应式 Web 服务。在详细介绍 WebFlux 之前,我们先梳理一下这个新框架的应用场景,了解应用场景才能帮助我们对所要采用的技术体系做出正确的选择。

微服务架构的兴起为 WebFlux 的应用提供了一个很好的场景。我们知道在一个微服务系统中,存在数十乃至数百个独立的微服务,它们相互通信以完成复杂的业务流程。这个过程势必会涉及大量的 I/O 操作,尤其是阻塞式 I/O 操作会整体增加系统的延迟并降低吞吐量。如果能够在复杂的流程中集成非阻塞、异步通信机制,我们就可以高效处理跨服务之间的网络请求。针对这种场景,WebFlux 是一种非常有效的解决方案。

 

2022年了,微服务、云原生、分库分表要了解一下吗?

从 WebMVC 到 WebFlux

接下来,我们将讨论 WebMVC 与 WebFlux 之间的差别,而这些差别实际上正是体现在从 WebMVC 到 WebFlux 的演进过程中。让我们先从传统的 Spring WebMVC 技术栈开始说起。

Spring WebMVC技术栈

一般而言,Web 请求处理机制都会使用“管道-过滤器(Pipe-Filter)”架构模式,而 Spring WebMVC 作为一种处理 Web 请求的典型实现方案,同样使用了 Servlet 中的过滤器链(FilterChain)来对请求进行拦截,如下图所示。

我们知道 WebMVC 运行在 Servlet 容器上,这些容器常用的包括 Tomcat、JBoss 等。当 HTTP 请求通过 Servlet 容器时就会被转换为一个 ServletRequest 对象,而最终返回一个 ServletResponse 对象,FilterChain 的定义如下所示。

public interface FilterChain {    
    public void doFilter (ServletRequest request
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值