实例讲解:用于实时解决方案的事件驱动架构

用于实时解决方案的事件驱动架构

对于成功的实时解决方案,您需要考虑一种事件驱动的异步通信方法。在事件驱动模型中,事件指示可能会触发感兴趣的客户端(或事件使用者)执行某些操作(例如更新 UI)的更改。事件通过事件通道作为消息传递给使用者。事件生成者正在传递反映数据或状态实时更改的事件。

事件驱动系统中的典型模式是"发布和订阅"。当状态发生更改时,事件生成者(发布者)发送事件消息,事件订阅者可以使用这些消息并调用其业务逻辑作为响应。

实时更新协议

在事件驱动的体系结构中,事件使用者需要能够异步接收更新。可供选择的协议包括:

  • HTTP 长轮询:服务器保持客户端连接打开状态,以便在新数据可用或达到连接超时阈值时提供响应。
  • WebSocket:通过持久 TCP 连接提供双向全双工通信通道,与半双工替代方案(如 HTTP 长轮询)相比,开销要低得多。
  • MQTT:用于在 CPU 功率和/或电池寿命有限的设备(例如 IoT 设备)之间流式传输数据的首选协议。
  • SSE:一种开放、轻量级、仅订阅的协议,用于事件驱动的数据流。 WebSocket 可以说是支持实时用户体验的最广泛使用的协议。WebSocket 于 2011 年由 - RFC 6455 标准化,是建立在设备的 TCP/IP 堆栈之上的薄传输层。

WebSocket的出现标志着 Web 开发的转折点。

WebSocket 连接专为事件驱动架构而设计,并针对最小开销和低延迟进行了优化,可通过持久的单套接字连接在客户端和服务器之间实现双向全双工通信。其目的是提供本质上尽可能接近原始的 TCP 通信层。

与 REST 相比,WebSocket 连接提高了效率;它们的扩展性更好,并且 WebSocket 协议是基于推送的,因此连接的客户端在事件发生时立即接收更新。

相关推荐
怕浪猫13 分钟前
领域特定语言(Domain-Specific Language, DSL)
设计模式·程序员·架构
怕浪猫37 分钟前
哪些软件对 Chrome DevTools Protocol 频繁使用
人工智能·架构·前端框架
Jack208 小时前
HarmonyOS APP事件驱动大揭秘
架构
Colin草率地做慢慢地改8 小时前
关于QuickStore这个项目的重构(2)- 数据库建表文件
后端·面试·架构
candyTong20 小时前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构
唐某人丶1 天前
从画架构图开始:架构分析与进阶指南
架构
只会cv的前端攻城狮2 天前
DSL 领域模型架构设计:消灭 CRUD 重复工作
前端·架构
禅思院2 天前
路由性能优化终极指南:从懒加载漏洞到边缘渲染的架构跃迁
前端·架构·前端框架
怕浪猫2 天前
Electron 系列文章封面图
算法·架构·前端框架