反应式编程-流处理
2016-09-25 本文已影响1642人
liseri
反应式编程
反应式编程的风格:非阻塞,异步,函数式
The Reactive Manifesto
反应式编程应有的四大核心特征
- Responsive: 响应性
- Resilient: 健壮性
- Elastic: 弹性
- Message-driven: 事件驱动性
参阅:
Reactive-Streams
Reactive Streams 定义
Reactive Streams是一种非阻塞背压异步流处理规范
Reactive Streams规范的目标
- 一个主要目标是通过异步边界来解耦系统组件,从而实现以并行方式执行同步环境下的各种功能
- 另一个主要目标是为压力处理定义一种规范
Reactive Streams规范的四个接口
Paste_Image.pngReactive Streams API及实现
- Reactor
- RxJava2.0
- RxJs
- Akka-Streams
- Vert.x
- MongoDB
- Slick
- Ratpack
参阅:
- Github: https://github.com/reactive-streams
- Reactive-streams官网
- Reactive Streams介绍-InfoQ
- Reactive Streams异步流处理标准-Jdon
- Github例子
ReactiveX
ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是微软LINQ的一个扩展;
开发者可以用Observables表示异步数据流,用LINQ操作符查询异步数据流, 用Schedulers参数化异步数据流的并发处理,Rx可以这样定义:Rx = Observables + LINQ + Schedulers。
Rx是一个使用可观察数据流进行异步编程的编程接口,也是一个函数库,也是一种编程思想,结合了观察者模式、迭代器模式和函数式编程的精华
RxJava历史:
- Rxjava1.x遵循ReactiveX规范
- RxJava2.x于2016发布,兼容Reactive Streams规范
参阅:
- Github: https://github.com/ReactiveX
- ReactiveX官网
- ReactiveX/RxJava文档中文版
- RxJava Essentials 一书的中文翻译版
- Rxjs doc
Reactor
Reactor3
Paste_Image.png历史:
- 2013 发布Reactor1.x
- 2015 结合响应式数据流规范,发布Reactor2.x
参阅: