♨️ Reactive @ 淘宝 | Reactive实践、推动、落地的记录与大会分享 | Flow Arch(流式架构)/Reactive Programming(RP/反应式编程)
Flow Arch
(流式架构)/Reactive Programming
(RP
/反应式编程) PracticeOne way ticket and of life to live, pockets full of sunshine, lots of love to give. -- La La Love On My Mind, Ann Winsborn
体验生命的单程票,装满阳光口袋可以给你许许多多的爱。 —— La La Love On My Mind, Ann Winsborn因为单程(
one-way
)的生命,所以我们才能并需要全力生活。异步(
async
)的系统,像这首歌一样流畅的节奏停不下来(non-blocking
)。点了链接听听,摇起来~
Reactive
/反应式Reactive
说明了
即也是Reactive
本身的定义。具体参见:
全异步化/流式架构 需要 捕捉操作并编排运行(延迟执行)。
Java 8 Lambda
语法的支持来精简表达。FP
上的思路做法。
OOP
有效表达了 业务概念(模型/数据)FP
则有效表达了 业务逻辑(流程/转换)Java 8
Java 8
支持的Lambda
是精简表达在语法上提供的支持。Java 8
提供了Stream
,学习和使用可以建立流式编程的认知。RxJava
RxJava 2
,循序渐进地介绍了使用和整体思路,推荐!Kotlin
语言。RxJava 1
,思路是无区别的,也可以看看。FP
思维、FP
基础类库的讲解,偏重思想和基础。有了思维和基础,实际的实践和应用就会举重若轻。Java
语言描述、手把手的构建FP
的基础运行时结构,极大地降低了深入理解FP
的门槛和难度。这里列的是比较广泛的相关。使用方式和思考方式是互通的,大家去学习和理解。
Java 8
的Stream
即包java.util.stream
。
ReactiveX
(Rx
)/RxJava
ReactiveX
(Rx
)是 Reactive eXtension
(Reactive
扩展)的缩写。
提供了Reactive
编程支持,提供配套设施/工具的实现。
RxJava 2
的Flowable
类的JavaDoc
文档,图文并茂,非常值得一读!
GitHub
仓库 https://github.com/ReactiveX/RxJava
Reactive
操作符 - RxJS Marbles,可拖拽元素去理解每一个操作符的含义,非常值得玩一玩!Reactive Streams
(RS
)Reactive Streams
(RS
)规范 简单了解 一下就好~
# 在Java中,即是Java9 Flow API。
Reactive
的核心设计思路和底层模式,RS
只提供的了API
(4个接口)及规范(这个接口及其之间的实现契约),不包含实现。
- 『核心』是指:全能、极简
- 『底层』是指:比较原始,业务开发一般不会使用直接使用/实现这个
API
来编写业务逻辑。
Rx
是业务开发使用的框架/库,而Reactive Streams
是规范API。在
Java
中,RxJava
与Reactive Streams
的关系,可以类比成:
Spring MVC
与Servlet API
MyBatis
与JDBC API
RS
规范的GitHub
仓库,包含了
Java
语言描述的
TCK
(即 规范兼容测试套件)代码PDF
文件
PDF
文件
Reactive
架构/系统设计中的Responsive to workload/Elastic
,或者说成上面我表达成的『面向流量/负载』的高可用 :)