写点什么

响应式编程的基本概念

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

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

关注

评论 1 条评论

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

开发体育直播平台:高并发问题解决手段及架构设计思路

软件开发-梦幻运营部

Sentieon | 应用教程:Sentieon分布模式

INSVAST

基因数据分析 生信服务 分布式数据存储模块 分布模式 Sentieon

OpenAI 曝新项目「草莓」,提升 AI 推理能力;智谱 AI 开源视频理解模型丨 RTE 开发者日报

声网

腾讯云首发大数据高性能计算引擎Meson,支持三大产品线性能升级

腾讯云大数据

大数据

阿里巴巴中国站1688商品详情API返回值分析:商品数据驱动的竞争对手分析

技术冰糖葫芦

API 安全 API 文档 API 开发 API 协议

利用财务团队的转型来推动企业业务成功

智达方通

企业管理 全面预算管理 财务管理

TON钱包选择全面资产保护教程,bitget钱包

BlockChain先知

开发者指南:挑选高效的缺陷管理工具

爱吃小舅的鱼

软件缺陷管理

软件测试学习笔记丨接口请求体-文件

测试人

软件测试

玩转生成式 AI ,抓住时代机遇

科技热闻

软件测试学习笔记丨接口自动化测试框架介绍

测试人

软件测试

一文读懂有关 LISTA、bitget 钱包的所有信息

股市老人

企业数字化转型成刚需 协同管理行业步入黄金发展期

快乐非自愿限量之名

数字化 数字经济 企业转型 协同办公

技术干货|数据科学助力制造业智能化变革

Altair RapidMiner

人工智能 机器学习 算法 数据分析 altair

谷歌DeepMind被曝抄袭开源成果,论文还中了顶流会议

Openlab_cosmoplat

人工智能 开源 ChatGPT

在线PDF转PPT软件!这2款AI工具值得推荐!

彭宏豪95

职场 PPT 办公软件 效率软件 AI生成PPT

性能测试:性能测试计划

霍格沃兹测试开发学社

前端开发-- Webpack 代码分割和懒加载技术

不在线第一只蜗牛

前端 Web webpack

观测云对接 Fluentd 采集业务日志最佳实践

观测云

Fluentd

小智常见报表示例--层次坐标--同比报表

小智数据

一群追星星的人,对AI的盼与怕

脑极体

AI

大模型落地,「city不city」?

白洞计划

AI

如何实现一个分布式锁

不在线第一只蜗牛

分布式 WPF

Unleashing Next-Gen Connectivity: Introducing Wallys WiFi 7 Router Boards DR9574 and DR5332

wallyslilly

ipq9574 IPQ5332

卷不动了!去香港工作可以重启人生吗?

王中阳Go

Go 面试题

构筑自主可控大数据“底座”,赋能数字经济发展

EquatorCoco

大数据 信息技术

基于低代码思想的可视化开发平台:引领未来软件开发的新趋势

不在线第一只蜗牛

软件开发 低代码 可视化

企业全历史行为数据 让你对竞争对手的一切清清楚楚

客户在哪儿AI

ToB营销 ToB获客 ToB增长 大客户营销

利用淘宝商品详情API接口,打造智能化电商数据分析平台

技术冰糖葫芦

API 安全 API 文档 API 开发 API 协议

Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源

EquatorCoco

Java mvc spring

如何基于 Elasticsearch 实现排序沉底或前置

字节跳动云原生计算

elasticsearch ES

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