写点什么

响应式编程的基本概念

  • 2016-01-22
  • 本文字数:798 字

    阅读完需:约 3 分钟

在参加了许多次谈话并阅读了大量的博文后, Peter Ledbrook 仍然未能深刻地理解响应式编程的含义。因此他认为,响应式编程领域存在一个关键的问题,就是它之所以那么难以理解是因为所有的术语词汇以及针对这些词汇的许多不同的解释。于是,他决定搞明白这一切,并希望同其他开发人员分享他的知识。

Ledbrook 是 Grails 的核心贡献者之一。他首先阅读了响应式编程宣言,发现响应式系统具备如下特点:

  • 响应性是指一个系统应该总是能够及时响应用户请求,并且保持很低的延迟。
  • 弹性是指一个系统即使在部分组件开始出现故障的情况下也应该能够作出响应,将停机时间将至最低。
  • 可伸缩性是指一个系统在负载增加时应该能够根据需求增加资源以确保响应性,但同时也应该能在负载降低时减少资源,保持高效的资源利用率。
  • 消息驱动是指在一个系统的不同部分之间传递消息,Ledbrook 认为这是响应式系统的一个必备特点。

Ledbrook 关注的下一个概念是响应式流,他将其描述为随着时间发出的一系列元素。他认为,从观察者模式入手理解这个概念是个不错的出发点。该模式包含一个发出事件的源及一个或多个等待事件的观察者。在Ledbrook 看来,响应式实际上是观察者模式加上事件源的完成通知能力、错误传播能力和监听者同事件源通信的能力。

响应式流是一种规范 ReactiveX 是一种常用的跨平台实现。 ProjectReactor Akka 是另外两种实现。下面三个重要的概念是响应式流 API 的构建基础:

  • 发布者是事件的发送方,可以向它订阅。
  • 订阅者是事件订阅方。
  • 订阅将发布者和订阅者联系起来,使订阅者可以向发布者发送信号。

Ledbrook 最后指出,许多响应式流都是由我们熟悉的概念构成,但是至少是部分地隐藏了复杂性。它适合于高 I/O 的环境或者需要处理大量数据的环境。Java 8 的流同响应式流类似,但他指出,Java 8 的流只能推送,不能接收监听者的信号,并且没有像响应式流所做的那样真正地针对 I/O 进行优化。

查看英文原文: The Basics of Being Reactive

2016-01-22 18:0011504
用户头像

发布了 1008 篇内容, 共 419.9 次阅读, 收获喜欢 346 次。

关注

评论 1 条评论

发布
用户头像
写的不错,真的是从设计理念和解决问题的出发点开始说才能把问题说清楚
2021-04-08 22:14
回复
没有更多了
发现更多内容

第二周 作业

尔东雨田

28岁程序员期权过亿,彪悍从字节退休,网友:酸了酸了!

程序员生活志

程序员 字节跳动 开发 退休

第二周总结

晨光

从字符串到常量池,一文看懂String类设计

程序员DMZ

JVM 常量池 intern

依赖倒置原则

Jeannette

架构师训练营 0 期第二周

Blink

小师妹学JVM之:JDK14中JVM的性能优化

程序那些事

JVM 小师妹 JIT JDK14 签约计划第二季

第二周作业

Aldaron

20年行业变革与技术演进,当下CDN如何为政企数字化转型加速?

阿里云Edge Plus

CDN 边缘计算 移动视频

编程这件事

dapaul

第二周总结

qqq

极客大学架构师训练营

使用WebMaker快速预览Ionic页面效果

davidce

Ionic WebMaker 混合应用开发

面向开发者的 WSL2 安装指南

simpleapples

Python Windows 10 wsl Go 语言

《实现领域驱动设计》拆书稿 DDD入门 & 领域、子域和限界上下文

三界

架构 领域驱动设计 DDD

设计模式的主要原则

【Week02】框架设计

Aldaron

依赖倒置架构

GAC·DU

红警1游戏开源,代码非常规范。网友:秀色可餐

程序员生活志

开源 红警1

如何构建低延时的直播体验,让互动更实时?

阿里云Edge Plus

CDN 短视频 直播 视频

【大厂面试06期】谈一谈你对Redis持久化的理解?

NotFound9

数据库 redis 后端

数仓系列 | 深入解读 Flink 资源管理机制

Apache Flink

大数据 flink 流计算 实时计算

架构师训练营第二章 总结

尔东雨田

课程总结

GAC·DU

第二周作业

晨光

Apache Flink 误用之痛

Apache Flink

大数据 flink 流计算 实时计算 数据处理

Flink作业问题分析和调优实践

Apache Flink

大数据 flink 流计算 实时计算

极客大学架构师训练营 框架设计、设计原则、设计模式 第四课 听课总结

John(易筋)

极客时间 极客大学 极客大学架构师训练营 设计原则 框架设计

免费下载 | 阿里云实时计算整体解决方案白皮书重磅发布!

Apache Flink

大数据 flink 流计算 实时计算

软件开发简史

Jeannette

看清远处模糊的事,不如做好身边清楚的事

Neco.W

创业心态 未知

当你启动Redis的时候,Redis做了什么

老胡爱分享

redis 源码分析 面试

响应式编程的基本概念_语言 & 开发_Jan Stenberg_InfoQ精选文章