概念

是 Spring 5 提出的一种新的开发 Web 的技术栈,是一种非阻塞的开发模式,运行在 netty 或者 Servlet 3.1 的容器之上,支持非常高的并发量

在学习 WebFlux 之前,如果大家对 JDK 8 的 lambda 和 stream,JDK 9 的 reactor stream 没有了解的话,可以先看看我之前的文章《函数式编程 / Lambda》《Stream 流编程》这两篇文章

和 Spring MVC 的区别

WebFlux 是一个非阻塞的 Web 框架,可运行在 Netty 和 Servlet 3.1 容器之上,不支持关系型数据库(关系型数据库不支持响应式)

Spring MVC 是一个同步阻塞的 Web 框架

image.png

优势

支持高并发,在相同的线程下,支持更多的请求,达到一个垂直扩展的目的

应用场景

当我们的应用的请求量上去了以后,我们可以将传统的 MVC 模式修改为 Reactive(WebFlux)模式,然后再考虑是否需要水平扩展,就这可以更加好的利用已有的资源,处理更加多的并发量