flux是什么意思

引言

spring 升级到5后,提供了一些新的特性。其中最让我懵逼的就是这个响应式编程。和前端的响应式布局等概念基本没有什么关系。spring介绍他是一个和spirng mvc类似的web层框架。

flux是什么意思

相关概念

Reactive Streams

Reactive Streams是一个规范,spring响应式编程实现了该规范,它的主要目的是让订阅者控制发布者生成数据的速度或速度。

Backpressure 背亚

使反应式编程比传统代码有显着改进的真正关键是背压。流的生成端 了解 消费端 能够接收多少数据的概念,并且能够相应地调整其吞吐量。

举个例子:服务器发送10个字节给客户端,但是客户端拼了命能收一个字节。那么此时服务器就要调整自己,减少数据输出了。再比如,老师讲10个知识点,学生一个都听不进去,那么老师是继续讲还是停下呢?这可能就是响应式的精髓吧。

S原由网pring Reactor

Reactor 框架是spirng之前的项目,实现了 Reactive Programmwww.58yuanyou.coming 思想,符合 Reactive Streams 规范(Reactive Streams 是由 Netflix、TypeSafe、Pivotal 等公司发起的)的一项技术。

Spring WebFlux

响应式Web框架Spring WebFlux。在ractor基础上实现,它完全无阻塞,支持 Reactive Streams背压,并在Netty,Undertow和Servlet 3.1+容器等服务器上运行。

什么是响应式编程

Reactive Programming 是一种非阻塞、事件驱动数据流的开发方案,使用函数式编程的概念来操作数据流。它允许系统的一部分中的数据更改后,自动更新系统的其他部分并且以最小的成//www.58yuanyou.com本自我更新的方式。

由于反应流是非阻塞的,因此在处理数据时,应用程序的其余部分不必等待。这有助于允许被动服务器在更传统的实现之外进一步扩展,因为应用程序中的工作线程不会等待其他资源 - 它们通常可以自由处理更多的传入请求。

最好用一个真实的例子来描述。我们将从数据库加载一些数据,对其进行操作然后将其返回给调用者。

需求

1,从数据库查询出一个users 集合。2,循环遍历users集合,并将users中的部分数据存入一个新的names集合中

命令式:

flux是什么意思

函数式:

flux是什么意思

响应式:

flux是什么意思

乍一看,这与以前非常相似。但是,因为这是反应性的,所以整个命令都是非阻塞的,因此我们的主线程不会在操作中被束缚。另外,如果调用者也是反应性的,则非阻塞性质一直传播。

举个栗子:dao在查询数据库时,可能数据库检索时间太长,以前的项目就会进入阻塞状态,但响应式的就不同,当数据库在返回数据前,主线程还可以处理其它请求。当数据库数据返回时,会自动将数据相应给调用者。

Reactor 项目的核心概念

Reactor 中有两个核心类型 - Mono 和 Flux。

简单理解:

Mono<User> 只有一个user数据Flux<User> 有多个user数据

示例代vJWLVpg

flux是什么意思

在传统服务器中,服务器会在数据库返回所有数据之后,再返回给客户端。如下:

flux是什么意思

在响应式服务器中,数据库返回一点数据,服务器就可以向客户端打印数据。

flux是什么意思

这意味着用户的等待时间会减少。

ps:看更多干货,加入技术交流微信群可以关注我的公众vJWLVpg号360linker

内容版权声明:除非注明原创否则皆为转载,再次转载请注明出处。

文章标题: flux是什么意思

文章地址: www.58yuanyou.com/baike/101083.html

相关推荐