反应式宣言

简介: (The Reactive Manifesto)Organisations working in disparate domains are independently discovering patterns for building software that look the same. These systems are more robust, more resilient, more flexible and better positioned to meet modern demands.各个领域的不同组织都在追寻一种相似的软件构建模式。

(The Reactive Manifesto)

Organisations working in disparate domains are independently discovering patterns for building software that look the same. These systems are more robust, more resilient, more flexible and better positioned to meet modern demands.

各个领域的不同组织都在追寻一种相似的软件构建模式。这种系统鲁棒性更好、更有韧性, 更加灵活, 能更好地应对现代化开发的需要。

These changes are happening because application requirements have changed dramatically in recent years. Only a few years ago a large application had tens of servers, seconds of response time, hours of offline maintenance and gigabytes of data. Today applications are deployed on everything from mobile devices to cloud-based clusters running thousands of multi-core processors. Users expect millisecond response times and 100% uptime. Data is measured in Petabytes. Today's demands are simply not met by yesterday’s software architectures.

由于系统需求近年来发生了巨大变化, 所以软件开发方式也正在改变。以前的大型应用系统会部署在几十台服务器, 响应时间大多是秒级, 可能还经常需要几个小时的离线维护, 数据量一般是GB级。今天的应用分布在各种移动终端, 服务端会部署到云集群上, 通常有上万个CPU核心在运转。用户需要的是毫秒级的响应时间, 而且期待的是100%的正常服务时间。数据量少则以PB为单位。过去的软件架构再也不能满足今天面临的各种需求。

We believe that a coherent approach to systems architecture is needed, and we believe that all necessary aspects are already recognised individually: we want systems that are Responsive, Resilient, Elastic and Message Driven. We call these Reactive Systems.

我们相信, 确实需要有一种清晰的系统架构方法, 其中很多必要特性已得到大家认可: 我们想要的系统要具备 快速响应(Responsive)、韧性(Resilient)、可伸缩性(Elastic) 及 消息驱动(Message Driven) 等特征。我们把具备这些特性的系统称为 反应式系统(Reactive System)。

Systems built as Reactive Systems are more flexible, loosely-coupled and scalable. This makes them easier to develop and amenable to change. They are significantly more tolerant of failure and when failure does occur they meet it with elegance rather than disaster. Reactive Systems are highly responsive, giving users effective interactive feedback.

构建为反应式的系统可以更加灵活(flexible)、松耦合(loosely-coupled),而且是可扩展的(scalable)。 这些优点让系统容易开发, 轻松应对需求变更。 对失败的容忍度更高, 故障发生时能从容应对, 而不会整体崩溃。 反应式系统响应迅速, 给用户提供更有效的交互体验。

反应式系统的四大特性:

Responsive: The system responds in a timely manner if at all possible. Responsiveness is the cornerstone of usability and utility, but more than that, responsiveness means that problems may be detected quickly and dealt with effectively. Responsive systems focus on providing rapid and consistent response times, establishing reliable upper bounds so they deliver a consistent quality of service. This consistent behaviour in turn simplifies error handling, builds end user confidence, and encourages further interaction.

快速响应(Responsive): 系统在各种情况下都会尽全力保证及时响应。响应性是可用性和实用性的基础, 此外,响应性还意味着问题能被迅速发现,并得到有效处理。反应式系统致力于提供快速和一致的响应时间,建立确定可靠的时间上限,并以此来交付质量稳定的服务。这种一致的行为反过来又简化了错误处理,逐渐了增强终端用户的信心,并促进了更进一步的交互。

Resilient: The system stays responsive in the face of failure. This applies not only to highly-available, mission critical systems — any system that is not resilient will be unresponsive after a failure. Resilience is achieved by replication, containment, isolation and delegation. Failures are contained within each component, isolating components from each other and thereby ensuring that parts of the system can fail and recover without compromising the system as a whole. Recovery of each component is delegated to another (external) component and high-availability is ensured by replication where necessary. The client of a component is not burdened with handling its failures.

韧性(Resilient): 系统在面临失败时依然保持快速响应。不仅对高可用系统,关键任务系统是这样; 所有不具备韧性的系统, 在失败后都不再具有快速响应特性。韧性是通过复制(replication)、封闭(containment)、隔离(isolation)委托(delegation)来实现的. 失败被包含在单个组件中, 且各组件相互隔离, 使系统在部分失败和恢复时,可以不影响整体的功能. 每个组件的恢复都委托给另一个(外部)组件, 高可用在必要时通过复制来保证. 组件的客户端也没有处理组件失败的负担。

Elastic: The system stays responsive under varying workload. Reactive Systems can react to changes in the input rate by increasing or decreasing the resources allocated to service these inputs. This implies designs that have no contention points or central bottlenecks, resulting in the ability to shard or replicate components and distribute inputs among them. Reactive Systems support predictive, as well as Reactive, scaling algorithms by providing relevant live performance measures. They achieve elasticity in a cost-effective way on commodity hardware and software platforms.

可伸缩性(Elastic,弹性扩容): 系统在不同的负载下都能保持快速的响应。反应式系统可以根据服务的请求量, 动态增加或减少相应的资源. 这也暗示系统设计中没有竞争点(contention point)和中心瓶颈(central bottleneck), 通过分片和组件复制, 将请求分发处理。 利用实时性能监控, 通过相应的缩放算法, 支持预测(predictive), 以确保反应式特性。 在商业的软件和硬件平台上, 以具有成本优势的方式实现了可伸缩性。 。

Message Driven: Reactive Systems rely on asynchronous message-passing to establish a boundary between components that ensures loose coupling, isolation, location transparency, and provides the means to delegate errors as messages. Employing explicit message-passing enables load management, elasticity, and flow control by shaping and monitoring the message queues in the system and applying back-pressure when necessary. Location transparent messaging as a means of communication makes it possible for the management of failure to work with the same constructs and semantics across a cluster or within a single host. Non-blocking communication allows recipients to only consume resources while active, leading to less system overhead.

消息驱动(Message Driven): 反应式系统依赖异步 消息传递机制, 以确定各种组件的边界, 并确保松耦合(loose coupling)、隔离性(isolation)、位置透明性(location transparency), 并提供将错误封装为消息的手段。采用显式的消息传递, 通过监测系统中的消息队列, 以支持负载管理(load management), 弹性扩容(elasticity) 和流量控制(flow control)。必要时甚至可以采用背压(back-pressure)。 位置透明的消息传递机制, 使得对集群和单个主机的失败管理具有相同的结构和语义。非阻塞通信允许接收者只在活动时消耗资源,有效减少系统开销。


Large systems are composed of smaller ones and therefore depend on the Reactive properties of their constituents. This means that Reactive Systems apply design principles so these properties apply at all levels of scale, making them composable. The largest systems in the world rely upon architectures based on these properties and serve the needs of billions of people daily. It is time to apply these design principles consciously from the start instead of rediscovering them each time.

大型系统由多个小系统组成, 因此也依赖于小型系统的反应式特性. 也就是说,反应式系统的设计原则适用于各个级别,各种规模的系统, 以便能很好地组合在一起. 最大型的系统要依赖具备这种特性的架构, 以服务数十亿人的服务需求. 应用这些设计原则的时刻到了,而且要从一开始就有意识地应用, 而不要等问题出现了才后悔莫及!

说明: Reactive System 翻译为 反应式系统。如有更恰当的词汇,请留言!

快翻译完时百度搜索, 发现04年的一篇翻译: http://www.ituring.com.cn/article/131783

欢迎加入: CNC开源组件开发交流群 316630025

翻译人员: 铁锚 http://blog.csdn.net/renfufei

翻译日期: 2016年3月29日

原文日期: 2014年9月16日

原文链接: http://www.reactivemanifesto.org/

目录
相关文章
|
9月前
|
机器学习/深度学习 算法 数据可视化
无监督学习与数据聚类:从理论到实践
无监督学习与数据聚类:从理论到实践
321 12
|
5月前
|
存储 人工智能 缓存
全新「宜搭出海版」,跨境业务一搭搞定!
在全球化竞争中,中国出海企业面临高增长与抗风险的双重挑战。宜搭基于低代码平台推出「宜搭出海版」,专注解决跨境业务的核心痛点。提供15种语言+AI翻译、全球文件速传、国际化时区协同、全球地址定位、国际化邮箱、货币支持及离线能力等功能,助力企业实现高效、敏捷的全球业务拓展。版本包括面向中国出海企业的“宜搭出海版”和面向海外客户的“宜搭国际版”。
247 17
|
6月前
|
人工智能
中国AI崛起与生成式人工智能(GAI)认证:驱动全球科技变革的人才战略
本文探讨了中国在人工智能(AI)领域的崛起及其对全球科技和经济的影响。文章回顾了中国AI研究的发展历程,从引进吸收到自主创新,政府政策支持与企业投入推动了AI技术的突破与广泛应用。同时,生成式人工智能(GAI)认证的重要性被强调,其为AI人才培养提供了专业标准,助力行业规范化发展。未来,中国将继续深化AI研究,加强国际交流,通过技能认证项目如GAI认证,为AI领域培养更多高素质人才,推动全球AI技术的繁荣发展。
|
7月前
|
算法
基于电导增量MPPT控制算法的光伏发电系统simulink建模与仿真
本课题基于电导增量MPPT控制算法,使用MATLAB2022a的Simulink进行光伏发电系统的建模与仿真,输出系统电流、电压及功率。电导增量调制(IC)算法通过检测电压和电流变化率,实时调整光伏阵列工作点,确保其在不同光照和温度条件下始终处于最大功率输出状态。仿真结果展示了该算法的有效性,并结合PWM技术调节逆变流器占空比,提高系统效率和稳定性。
|
8月前
|
域名解析 安全 数据安全/隐私保护
如何选择网站模版快速建站?
在建站初期,确定主题、后台搭配、域名和主机是关键。使用教程引导用户搭建,注意安全与稳定性。部署部署后,定期更新内容以优化SEO。网站运营需管理维护,及时更新密码和后台。
178 12
|
8月前
|
人工智能 开发框架 自然语言处理
《鸿蒙NEXT:为人工智能开发者打造的“梦想舞台”》
鸿蒙NEXT为AI开发者提供全方位支持,包括强大的AI辅助编程工具DevEco CodeGenie、详尽的开发文档与教程、高效的开发平台DevEco Studio、盘古大模型的深度赋能、开放的生态合作机会及激励政策。这些资源助力开发者高效开发智能应用,推动AI技术在鸿蒙生态系统中的广泛应用与发展。
316 13
|
8月前
|
机器学习/深度学习 自然语言处理 文字识别
方案测评 | 多模态数据信息提取极速体验
多模态数据信息提取方案基于先进AI技术,能高效处理文本、图像、音频和视频等不同格式文件,提取有价值信息。该方案通过深度学习、自然语言处理等技术,实现结构化信息挖掘与分析,支持批处理模式,显著提高大规模数据处理效率,降低业务成本。用户可通过阿里云平台一键部署,无需数据搬运,确保高效安全的数据处理体验。此方案在性能和易用性上表现出色,具有广泛的应用价值和市场前景。
|
9月前
|
机器学习/深度学习 算法 计算机视觉
《深度学习案例实战》新书出版——基于阿里魔搭平台
《深度学习案例实战》是一本实用的指南,涵盖多个领域的深度学习应用案例。本书旨在通过具体的案例讲解,阐述典型深度学习算法在图像分类、声音识别、语义分割、目标检测等各个领域的广泛应用。本书所涵盖的典型案例包括太阳黑子分类、气象预测、食物声音分类、智能厨房、智能冰箱食材检测、集体照人脸识别、遛狗绳识别、智能售药机药品检测、道路裂纹检测、学生教室行为检测等。这些案例旨在通过实际问题的解决,使读者能够深入理解深度学习算法的应用和实践。 本书特别关注两个关键技术:低代码开发平台摩搭ModelScope和深度学习加速器OpenVINO。摩搭平台为读者提供了一个便捷的开发环境,借助其丰富的预训练模型库和开发平
338 2
《深度学习案例实战》新书出版——基于阿里魔搭平台
|
9月前
|
供应链 搜索推荐 API
1688榜单商品详细信息API接口的开发、应用与收益
1688作为全球知名的B2B电商平台,为企业提供丰富的商品信息和交易机会。为满足企业对数据的需求,1688开发了榜单商品详细信息API接口,帮助企业批量获取商品详情,应用于信息采集、校验、同步与数据分析等领域,提升运营效率、优化库存管理、精准推荐、制定市场策略、降低采购成本并提高客户满意度。该接口通过HTTP请求调用,支持多种应用场景,助力企业在电商领域实现可持续发展。
210 4

热门文章

最新文章