跳到正文

响应式编程简介

3 分钟阅读 657 字 0 查看原文 →

响应式编程入门

Reactor 3 是一个围绕该规范构建的库,将响应式编程Reactive Streams范式引入JVM。
在本课程中,你将熟悉 Reactor API。那么,让我们快速介绍一下响应式流和响应式编程中更通用的概念。

为什么


响应式编程是一种新的编程范式,它使用声明式代码(类似于函数式编程)来构建异步处理管道。它是一种基于事件的模型,数据一旦可用就会被推送给消费者:我们处理的是异步事件序列。

这样做很重要,可以更有效地利用资源,提高应用程序服务大量客户端的能力,而无需编写底层并发和/或并行代码。
响应式编程以完全异步非阻塞为核心支柱,是 JDK 中实现异步代码的更有限方式(即基于回调的 API)的替代方案Future
它还有助于代码组合,从而使异步代码更易读、更易维护。

Reactive Streams


Reactive Streams规范是由业界推动的,旨在规范 JVM 上的响应式编程库,更重要的是,它明确规定了这些库的行为方式,以确保它们之间的互操作性。实现者包括 Reactor 3,以及 RxJava 2 及更高版本、Akka Streams、Vert.x 和 Ratpack。
它包含 4 个非常简单的接口以及一个 TCK,这一点不容忽视,因为规范的规则才是它最有价值的地方。
然而,从用户角度来看,它的底层架构相当薄弱。Reactor 3 旨在提供一个更高级别的 API,以便在更广泛的场景下使用,它基于 Reactive Streams 构建Publisher

互动


在响应式流序列中,数据源Publisher会生成数据。但默认情况下,它不会执行任何操作,直到某个服务Subscriber注册(订阅)后,才会 向其推送数据。
PublisherSubscriber
Reactor 引入了操作符的概念,这些操作符串联起来,描述了在每个阶段对数据应用的处理方式。应用一个操作符会返回一个新的中间体 Publisher(实际上,它可以被视为上游操作符的订阅者,以及下游操作符的发布者)。最终的数据形式会进入最终状态,Subscriber 该状态定义了从用户角度出发应该执行的操作。
原文:https://tech.io/playgrounds/929/reactive-programming-with-reactor-3/Intro
源码:github gitee

相关文章

语义化版本 2.0.0

原文 https://semver.org/lang/zh-CN/ title: 语义化版本 2.0.0 language: zh-CN author: Wayou Liu 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及...

StepVerifier-步骤验证器及其使用方法

StepVerifier 描述 到目前为止,你对每个练习的解答都是通过将 Publisher 你定义的答案传递给一个测试用例来检查的 StepVerifier。 该工件中的此类 reactor-test 能够订阅任何 Publisher (例如,Flux Akka Stream 或 A 流……),然后断言一组关于该序列的用户定义期望。 如果触发的任何事件与当前预期不符,则会 StepVerifie...

学习如何创建 Mono 实例

学习如何创建 Mono 实例 Flux 描述 AMono<T>是一个响应式流 Publisher,还增强了许多可用于生成、转换、编排 Mono 序列的操作符。 它是最多 Flux 可以发出 1 个<T>元素的特例:Mono 要么有值(包含元素),要么为空(不包含元素),要么失败(错误)。 AMono<Void>可用于仅对完成信号感兴趣的情况(相当于 Reacti...

bigroc 头像
bigroc

热爱技术的开发者,持续分享 Java、JavaScript、Go、Docker、AI 等领域的编程经验和技术思考。

评论

滚动到评论区域时再加载第三方评论脚本。