软件系统架构 yellow gold rule: reactive programming

作者:禅与计算机程序设计艺术

背景介绍

1.1 传统软件架构面临的挑战

近年来,随着互联网的普及和移动设备的普及,用户对软件系统的需求也在不断变化。传统的软件架构,如 monolithic architecture,已经无法满足当今复杂快速变化的业务需求。传统架构存在以下几个问题:

伸缩性:传统架构难以支持大规模的用户访问,因为它们往往会将所有服务都部署在同一个服务器上。当访问量增加时,该服务器很容易被压力过载。

可用性:传统架构的服务器出现故障时,整个系统都会受到影响,导致系统不可用。

灵活性:传统架构通常很难扩展新功能,因为它们的代码结构比较复杂,难以维护和修改。

可靠性:传统架构难以应对突发流量,因此它们的可靠性不高。

1.2 响应式编程

为了应对上述问题, responded-driven programming(RDP)应运而生。RDP 是一种基于事件驱动的编程模型,它可以自适应地响应外部事件。RDP 的核心思想是将系统分解成多个小型、松耦合的组件,每个组件都可以独立地处理事件。这些组件之间通过消息 passing(MP)来通信,从而实现系统的伸缩性、可用性、灵活性和可靠性。

核心概念与联系

2.1 事件与订阅

在 RDP 中,事件是指系统内或系统外产生的某种状态变化。例如,用户点击按钮、HTTP 请求到达等都是事件。每个事件都有一个唯一的标识符,用于标识该事件。

订阅是指系统中的组件注册自己感兴趣的事件类型。当有新的事件产生时,RDP 框架会检查是否有任何组件对该事件类型感兴趣。如果有,就会将事件发送给相关的组件。

2.2 消息 passing

消息 passing(MP)是一种用于组件之间通信的技术。MP 通常包括三个步骤:

生产者将消息发送到队列中。

消费者从队列中取出消息进行处理。

消费者向生产者发送反馈,告诉生

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。