webflux mysql mono创建_webflux系列--基础

文章目录

Spring Mvc 和 Spring WebFlux

WebFlux 的优势&提升性能

WebFlux 应用场景

异同点

响应式编程

Reactive Streams

顶级接口

Reactor

Reactor实现

Flux

Mono

Flux常用函数

**调试reactor**

StepVerifier方法

Reactor中的多线程

**Schedulers**

Schedulers.immediate()

Schedulers.single()

Schedulers.elastic()

Schedulers.parallel()

错误处理

**onErrorReturn**

**onErrorResume**

**onErrorMap**

**doOnError** **记录错误日志**

**finally 确保做一些事情**

**retry 重试机制**

背压(流量控制)

Spring Mvc 和 Spring WebFlux

​ Spring MVC 构建于 Servlet API 之上,使用的是同步阻塞式 I/O 模型,每一个请求对应一个线程去处理。

​ Spring WebFlux 是一个异步非阻塞式的 Web 框架,它能够充分利用多核 CPU 的硬件资源去处理大量的并发请求。

WebFlux 的优势&提升性能

​ WebFlux 内部使用的是响应式编程(Reactive Programming),以 Reactor 库为基础, 基于异步和事件驱动,可以让我们在不扩充硬件资源的前提下,提升系统的吞吐量和伸缩性。

​ WebFlux 并不能使接口的响应时间缩短,它仅仅能够提升吞吐量和伸缩性。

WebFlux 应用场景

​ Spring WebFlux 是一个异步非阻塞式的 Web 框架,所以,它特别适合应用在 IO 密集型的服务中,比如微服务网关这样的应用中。

备注:

​ IO 密集型包括:磁盘IO密集型, 网络IO密集型,微服务网关就属于网络 IO 密集型,使用异步非阻塞式编程模型,能够显著地提升网关对下游服务转发的吞吐量。

异同点

9080e2a48fbd8c8e76b47eddb112dd07.png

相同点:

都可以使用 Spring MVC 注解,如 @Controller, 方便我们在两个 Web 框架中自由转换;

均可以使用 Tomcat, Jetty, Undertow Servlet 容器(Servlet 3.1+);

注意点:

Spring MVC 因为是使用的同步阻塞式,更方便开发人员编写功能代码,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值