构建反应式应用:多服务协同架构解析
1. 应用概述
有一个独立的 Web 应用提供了公共仪表盘,该仪表盘展示了过去 24 小时公共资料的排名、当前计步器设备更新吞吐量以及各城市的趋势,且所有信息实时更新。
整个应用被分解为一组(微)服务,它们相互交互。服务分为公共服务和内部服务:
- 公共服务 :两个面向用户的 Web 应用、一个接收计步器设备更新的服务、一个公开公共 HTTP API 的服务。
- 内部服务 :管理用户资料的服务、管理活动数据的服务、通过电子邮件向用户表示祝贺的服务、计算连续事件各种统计信息的服务。
此外,还需要一些第三方中间件,即“基础设施服务”,包括面向文档的数据库(MongoDB)、关系数据库(PostgreSQL)、用于发送电子邮件的 SMTP 服务器、用于部分服务间事件流处理的 Apache Kafka,以及 ActiveMQ Artemis 服务器。
2. 应用架构中的交互
在应用架构图中有两种类型的箭头:
- 事件流 :显示服务之间重要的事件交换。例如,摄取服务将事件发送到 Kafka,而事件统计服务既消费又产生 Kafka 事件。
- 依赖关系 :例如,公共 API 服务依赖于用户资料和活动服务,而这两个服务又依赖于各自的数据库进行数据持久化。
以计步器设备更新如何影响仪表盘 Web 应用的城市趋势排名为例,具体交互步骤如下:
1. 计步器向摄取服务发送更新,摄取服务验证更新是否包含所
超级会员免费看
订阅专栏 解锁全文
1167

被折叠的 条评论
为什么被折叠?



