博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Reactor 响应式编程
阅读量:7065 次
发布时间:2019-06-28

本文共 961 字,大约阅读时间需要 3 分钟。

hot3.png

响应式编程介绍

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

  • Responsive: 可响应的。要求系统尽可能做到在任何时候都能及时响应。
  • Resilient: 可恢复的。要求系统即使出错了,也能保持可响应性。
  • Elastic: 可伸缩的。要求系统在各种负载下都能保持可响应性。
  • Message Driven: 消息驱动的。要求系统通过异步消息连接各个组件。

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

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://my.oschina.net/u/3198904/blog/1808353

你可能感兴趣的文章
Extjs 4 grid中的checkbox的加载时预选中【默认选中】
查看>>
JAVA CAS原理深度分析
查看>>
O2O?啥是“呕吐呕”?
查看>>
百度的疯狂 UC的隐忍
查看>>
我的友情链接
查看>>
AGG第三十五课 gsv_text 渲染ASCII字符
查看>>
查找组成一个偶数最接近的两个素数
查看>>
不怕狼一样的敌人,就怕狗一样的朋友
查看>>
bash基础特性
查看>>
reactjs服务器端渲染——node搭建简易服务器
查看>>
搭建wordpress&Dokuwiki based on LAMP platform(CentOS 6.4)
查看>>
Kubernetes集群部署1
查看>>
nginx负载均衡与反向代理配置文件分析实例
查看>>
CentOS 7.4 安装Zabbix 3.4
查看>>
Centos7 yum安装Chrome浏览器
查看>>
非root用户下安装nginx及运行
查看>>
springmvc笔记(3)—使用@RequestMapping映射请求
查看>>
主键自增设置
查看>>
新建Salesforce的自定义对象和自定义字段
查看>>
MySQL索引底层实现原理
查看>>