Python 官方文档:入门教程 => 点击学习
目录正文Reactive ProgrammingReactive Streamsspring ReactorReactive Streams、Reactor和WEBFlux 区别?正
为了应对高并发环境下的服务端编程,xx提出了一个实现异步编程的方案 -Reactive Programming,中文名称反应式编程。反应式编程(reactive programming)并不是一个新的概念,也不是一个新的技术,很早之前就被提出来了。
先从几个概念入门说起:
反应式编程 (reactive programming) 是一种基于数据流 (data stream) 和 变化传递 (propagation of change) 的声明式 (declarative) 的编程范式。
响应式编程使用三个核心概念:数据流,变化传递和异步观察。
换句话说:使用异步数据流进行编程,这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。反应式编程提高了代码的抽象级别,可以只关注定义了业务逻辑的那些相互依赖的事件。
Reactive Streams :The purpose of Reactive Streams is to provide a standard for asynchronous stream processing with non-blocking backpressure。
Reactive Streams 的目的是为具有非阻塞背压的异步流处理提供标准。
对于Java程序员,Reactive Streams是一个api。Reactive Streams为我们提供了Java中的Reactive Programming的通用API。
Reactive Streams API的范围是找到一组最小的接口,方法和协议,这些接口,方法和协议将描述必要的操作和实体,从而实现具有非阻塞背压的异步数据流。
Reactive Streams API
中如下四个接口:(后面文章详细)
public interface Publisher<T> {
public void subscribe(Subscriber<? super T> s);
}
public interface Subscriber<T> {
public void onSubscribe(Subscription s);
public void onNext(T t);
public void onError(Throwable t);
public void onComplete();
}
public interface Subscription {
public void request(long n);
public void cancel();
}
public interface Processor<T, R> extends Subscriber<T>, Publisher<R> {
}
Reactor 是第四代响应式库,基于Reactive Streams规范,用于在 JVM 上构建非阻塞应用程序。是Spring提供的非阻塞式响应式编程框架,实现了Reactive Streams规范而已
Flux 表示的是包含 0 到 N 个元素的异步序列。在该序列中可以包含三种不同类型的消息通知:正常的包含元素的消息、序列结束的消息和序列出错的消息。当消息通知产生时,订阅者中对应的方法 onNext(), onComplete()和 onError()会被调用。Mono 表示的是包含 0 或者 1 个元素的异步序列。该序列中同样可以包含与 Flux 相同的三种类型的消息通知。Flux 和 Mono 之间可以进行转换。对一个 Flux 序列进行计数操作,得到的结果是一个 Mono对象。把两个 Mono 序列合并在一起,得到的是一个 Flux 对象。
Spring 产品组合提供了两个并行堆栈。 一种是基于带有 Spring mvc 和 Spring Data 结构的 Servlet API。 另一个是完全反应式堆栈,它利用了 Spring WebFlux 和 Spring Data 的反应式存储库。 如下技术栈:Spring官方提供
数据库:以一种反应的方式访问和处理数据是非常重要的。mongoDB、Redis和Cassandra都有原生的Spring数据响应支持。许多关系数据库(Postgres、Microsoft SQL Server、Mysql、H2和GoogleSpanner)通过R2DBC提供了反应性支持。
在消息传递的世界中,spring cloud Stream还支持对RabbitMQ和kafka等平台的反应性访问。
上面介绍了反应式编程的一些概念。三者的关系:
参考:
以上就是Reactive Programming入门概念详解的详细内容,更多关于Reactive Programming入门的资料请关注编程网其它相关文章!
--结束END--
本文标题: ReactiveProgramming入门概念详解
本文链接: https://lsjlt.com/news/168625.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0