反应式编程-流处理

反应式编程


反应式编程的风格:非阻塞,异步,函数式

The Reactive Manifesto


反应式编程应有的四大核心特征

  • Responsive: 响应性
  • Resilient: 健壮性
  • Elastic: 弹性
  • Message-driven: 事件驱动性

参阅:

  • The ReactiveManifesto官网
  • Reactive宣言的思考-Jdon
  • go reactive宣言-Jdon

Reactive-Streams


Reactive Streams 定义

Reactive Streams是一种非阻塞背压异步流处理规范

Reactive Streams规范的目标

  • 一个主要目标是通过异步边界来解耦系统组件,从而实现以并行方式执行同步环境下的各种功能
  • 另一个主要目标是为压力处理定义一种规范

Reactive Streams规范的四个接口

反应式编程-流处理_第1张图片
Paste_Image.png

Reactive 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

反应式编程-流处理_第2张图片
Paste_Image.png

历史:

  • 2013 发布Reactor1.x
  • 2015 结合响应式数据流规范,发布Reactor2.x

参阅:

  • GitHub: https://github.com/reactor
  • Reactor官网
  • Reactor 指南中文版

其它资料


  • Operator-fusion
  • 大数据统一的批处理和流处理标准 Apache Beam
  • Facebook的实时流处理技术
  • RP入门
  • Comparison of Reactive-Streams implementations
  • Apache的流处理概述-InfoQ
  • 事件溯源与流处理的对比-InfoQ
  • 大数据的Reactive之道-Jdon

你可能感兴趣的:(反应式编程-流处理)