扫码阅读
手机扫码阅读

WebFlux 初体验

38 2024-11-06

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:WebFlux 初体验
文章来源:
江南一点雨
扫码关注公众号

松哥原创的 Spring Boot 视频教程已完结

松哥已经完成了Spring Boot视频教程的创作,对此感兴趣的朋友可以查看相关视频教程。

1. 什么是 WebFlux

WebFlux是Spring框架中的一个异步非阻塞式IO模型,能够支持大量并发访问,提升系统吞吐量和伸缩性。WebFlux适用于IO密集型应用,如微服务网关Spring Cloud Gateway。它使用Netty作为底层容器,不同于传统的SpringMVC,并且也支持Jetty和Undertow等容器。需要注意的是,WebFlux需要Servlet3.1+容器或非Servlet容器。

2. 什么是 Reactor

Reactor是基于反应式编程的一种方案,由Pivotal团队实现,提供非阻塞、事件驱动的编程方式。Reactor与Java8的函数式API兼容,并提供了异步序列API Flux(用于处理N个元素)和Mono(用于处理0或1个元素)。它们都实现了发布者Publisher接口。

3. 创建工程

为了展示WebFlux,创建一个Spring Boot工程时选择Spring Reactive Web依赖,这将使用Netty容器而非传统的Tomcat。

3.1 Mono

Mono的使用示例展示了在WebFlux中,即使处理耗时操作,接口也不会阻塞,服务端处理的耗时为0。而在普通接口中,请求将被阻塞,耗时约2001毫秒。

3.2 Flux

Flux是另一种常用的数据格式,可以从数组生成,并支持Stream操作。在实例中,Flux以text/event-stream格式返回数据,这种格式用于服务器向浏览器推送消息。

4. 小结

通过这个简单案例,展示了WebFlux的基本用法。更多细节将在后续文章中介绍。

想要了解更多内容?

查看原文:WebFlux 初体验
文章来源:
江南一点雨
扫码关注公众号