大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

响应式编程的基本概念

  • 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:0011572
用户头像

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

关注

评论 1 条评论

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

如何使用 NFTScan 追踪 NFT 巨鲸

NFT Research

NFT 数据基础设施

巧用数据分析表达式,让数据指标创建更简单

葡萄城技术团队

专访 | 刘嘉松:开源,互惠且共赢

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

OpenMLDB 祝大家新年快乐!

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

专精特新小巨人VC/PE覆盖率24.2%;上市649家;北京以589家位居城市榜首丨创业邦发布《2022专精特新小巨人发展报告》

创业邦

技术贴 | SQL编译与执行-parser

KaiwuDB

数据赋能的未来,看向嵌入式BI

葡萄城技术团队

【Paper Reading】Cloud-Native Transactions and Analytics in SingleStore

阿里云数据库开源

数据库 阿里云 开源 分布式 云原生

消息服务 + Serverless 函数计算如何助力企业降本提效?

阿里巴巴云原生

阿里云 云原生 消息队列

14条日常维护LED显示屏的建议

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

.net可视化表单设计工具

力软低代码开发平台

模块2作业分享思路

程序员小张

「架构实战营」

微服务应用视角解读如何选择 K8s 的弹性策略

阿里巴巴云原生

阿里云 微服务 云原生

java程序员培训学习后好找工作

小谷哥

如何使用自助式商业智能 (BI) 避免组织中的数据孤岛

葡萄城技术团队

技能破局 职业加码 业界首堂Volcano云原生批量计算公开课云上开讲

科技热闻

商业智能BI工具评估指南

葡萄城技术团队

回顾 OpenMLDB 2022 之旅 | 开源之路,行将致远

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

Postman 进阶技巧

世开 Coding

Postman API

万物皆可集成系列:低代码对接微信小程序

葡萄城技术团队

朋友圈高性能复杂度

生活需要激情

架构训练营10期

元年科技2022回顾:奋楫扬帆数字化,转型升级立潮头

元年技术洞察

数字化转型 财务数字化 方舟平台 管理会计

nova 6升级HarmonyOS 3正式版,即刻体验随心百变的个性化桌面

极客天地

平安银行携手StarRocks荣获2022金融业数字化转型突出贡献奖

StarRocks

数据库 金融

Java常见异常:NPE空指针异常怎么解决?

千锋IT教育

玩转OpenHarmony社交场景:即时通讯平台

OpenHarmony开发者

OpenHarmony

Monorepo 下 Git 工作流的最佳实践

字节跳动终端技术

git Monorepo

flutter系列之:flutter中listview的高级用法

程序那些事

flutter 程序那些事

性能成本难两全?OpenMLDB 实时计算双存储引擎让你不必纠结(附测评报告)

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

架构实战 - 模块 5 作业

mm

怎么入门大数据开发技术

小谷哥

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