Reactor 响应式编程

响应式编程介绍

响应式编程是一种编程范式,若是你了解事件编程,观察者模式,理解这个几率并不难,响应式编程宣言包含了四组关键字:react

  • Responsive: 可响应的。要求系统尽量作到在任什么时候候都能及时响应。
  • Resilient: 可恢复的。要求系统即便出错了,也能保持可响应性。
  • Elastic: 可伸缩的。要求系统在各类负载下都能保持可响应性。
  • Message Driven: 消息驱动的。要求系统经过异步消息链接各个组件。

反应式流中第一个重要概念是负压(backpressure)。在基本的消息推送模式中,当消息发布者产生数据的速度过快时,会使得消息订阅者的处理速度没法跟上产生的速度,从而给订阅者形成很大的压力。当压力过大时,有可能形成订阅者自己的奔溃,所产生的级联效应甚至可能形成整个系统的瘫痪。负压的做用在于提供一种从订阅者到生产者的反馈渠道。订阅者能够经过 request()方法来声明其一次所能处理的消息数量,而生产者就只会产生相应数量的消息,直到下一次 request()方法调用。这实际上变成了推拉结合的模式。git

Reactor 简介

前面提到的 RxJava 库是 JVM 上反应式编程的先驱,也是反应式流规范的基础。RxJava 2 在 RxJava 的基础上作了不少的更新。不过 RxJava 库也有其不足的地方。RxJava 产生于反应式流规范以前,虽然能够和反应式流的接口进行转换,可是因为底层实现的缘由,使用起来并非很直观。RxJava 2 在设计和实现时考虑到了与规范的整合,不过为了保持与 RxJava 的兼容性,不少地方在使用时也并不直观。Reactor 则是彻底基于反应式流规范设计和实现的库,没有 RxJava 那样的历史包袱,在使用上更加的直观易懂。Reactor 也是 Spring 5 中反应式编程的基础。学习和掌握 Reactor 能够更好地理解 Spring 5 中的相关概念。编程

在 Java 程序中使用 Reactor 库很是的简单,只须要经过 Maven 或 Gradle 来添加对 io.projectreactor:reactor-core 的依赖便可。异步

DEMO

https://gitee.com/chenjian097/reactor-demo学习

相关文章
相关标签/搜索