写点什么

响应式编程的基本概念

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

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

关注

评论 1 条评论

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

《悠然垂钓记》模拟垂钓游戏模式开发步骤实行

V\TG【ch3nguang】

mac非常好用的视频下载软件:Downie 4 for Mac 直装版

你的猪会飞吗

Downie 4 Mac版 Downie 4下载 Downie 4 for mac

云桌面如何深度解决传统办公场景应用难题?

上海锐起科技

MySQL 延迟从库介绍

Simon

MySQL MySQL主从复制

深入解析淘宝商品详情API返回值中的商品材质与成分

代码忍者

API 测试 API 策略

智能终端密码模块的三重防护

芯盾时代

信息安全 终端安全 密码

火山引擎数智平台:A/B测试个性化配置能力发布,拓展多场景策略最优解

字节跳动数据平台

大数据 A/B测试 对比实验 数字化增长

新兴产业怎么定义?需要堡垒机有什么用?

行云管家

网络安全 堡垒机 新兴产业

跨平台.NET IDE 集成开发环境JetBrains Rider 2024 for Mac

Mac相关知识分享

集成开发环境 mac软件开发

Mac 的云盘本地加载工具CloudMounter mac

Mac相关知识分享

云盘本地加载工具

数字交易所加密系统开发技术合约源码搭建

V\TG【ch3nguang】

浅谈大模型生成类应用的需求分析设计与实践

鲸品堂

文档 大模型 生成式 企业号2024年8月PK榜

京东搜索重排:基于互信息的用户偏好导向模型

京东零售技术

搜索 企业号2024年8月PK榜

阐述(中心/去中心)交易所系统开发技术理念丨源码搭建丨技术分享

V\TG【ch3nguang】

开源活动预告|抖音集团专家聚焦电商、PB级实时场景带来数据技术分享

字节跳动数据平台

飞桨框架3.0核心升级:动静统一自动并行,轻松开发大模型

百度Geek说

百度 百度飞桨 #大模型

家装辅助设计软件Sweet Home 3D for Mac

Mac相关知识分享

室内家居设计软件 室内设计软件

Microsoft PowerPoint LTSC 2021 for Mac( ppt 2021)办公软件中文版

Mac相关知识分享

办公软件 mac软件下载

LED广告屏深受欢迎的原因分析

Dylan

广告 科技 LED display LED显示屏 零售电商市场

基于LangChain手工测试用例转Web自动化测试生成工具

测试人

人工智能 软件测试 测试用例

唐山等保测评机构有吗?在哪里?

行云管家

等保 等级保护 唐山

深入京东API世界:商品详情返回值的秘密

技术冰糖葫芦

API Explorer API 测试 API 策略 pinduoduo API

核心技术揭秘:AI、低代码与定制开发的三重奏,如何应对复杂业务需求

天津汇柏科技有限公司

低代码平台 软件开发定制 AI 人工智能

京东平台内容合规的技术与挑战

京东零售技术

合规 内容合规

袋鼠云《数据资产管理白皮书》重磅发布,提供数据资产管理新思路,激发数据资产新动能(附下载)

袋鼠云数栈

数业智能心大陆开学 “收心” 全指南

心大陆多智能体

智能体 AI大模型 心理健康 数字心理

TimeWheel 算法介绍及在应用上的探索

vivo互联网技术

dubbo TimeWheel 时间轮模型

《全民养猪》模式系统开发搭建/规范设计

V\TG【ch3nguang】

Dapp/dEFI丨质押挖矿模式系统开发讲解【附源码合约实例】

V\TG【ch3nguang】

神途元宇宙游戏打金模式系统开发功能搭建设计

V\TG【ch3nguang】

邮件管理软件Microsoft Outlook 2021 LTSC for Mac

Mac相关知识分享

微软 办公软件

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