分为Servlet Stack 和Reactive Stack
Reactive Stack
Reactive 是一种编程模型, 这里主要是对IO对反应(react),对IO事件作出反应,所以非阻塞编程就是reactive。
reactie stream 是一个需求, 在java9引入。主要是让消费者决定生产者的生产速度
reactive web 技术栈: 主要是非阻塞web 服务器, 如Netty, Undertow, 和Sevlet3.1+ 的web server. Spring WebFlux 的目的就是非阻塞web server, 其是基于上述几个技术基础。
Sevlet3.1+ 提供非阻塞模式, 为什么不用?
一、因为它和其它servlet api 不兼容,如Filter, servlet 或者阻塞接口getParameter, getPart等, 所以新建了新的通用非阻塞api,以适应其它非阻塞服务器(如Netty)的异步,非阻塞空间(space?)
二、适应java5的annotated rest controller 或单元测试, 适应java8 的语法,如lamdar 表达式, CompetableFuture和ReativeX
WebFlux 默认使用Reactor 依赖
https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html
Servlet Stack
Servlet 技术栈: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#spring-web
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。