
云原生应用的设计
|
53
请求 / 响应
请求
响应
服务 A 服务 B
图 3-10:使用关联 ID 的请求 / 响应示例
概括而言,使用关联 ID 的请求 / 响应模式通过以下几个步骤实现:
1. 服务 A 创建一个请求,该请求通过用户名查询一条记录。这个请求会带上一个 ID,
比如在上面的示例中 ID 为 12,然后发送这个请求后等待关联 ID 为 12 的消息响应。
2. 服务 B 从队列中读取该消息,检索该用户的数据,然后根据 ID 分配一个关联 ID。
3. 服务 B 将关联 ID 12 与用户数据一起添加到响应中,并将响应发送回去。响应队列
可以包含多个响应,各自有不同的关联 ID,比如示例中的 3、5、21。
4. 服务 A 从响应队列中读取与请求 ID 对应的关联 ID 的响应。
3.5.6 发布者与订阅者
发布者 / 订阅者(pub/sub)模式是云原生应用中最常见的异步通信模式之一。发布者将
消息发布到一个主题,订阅该主题的所有订阅者将立即接收到该消息。发布者 / 订阅者
模式主要服务于两类目的:
•
实现服务和函数之间的松耦合,因为它可以将发布者与订阅者分离。
•
实现事件驱动的设计,这是云原生应用领域中的一种非常流行的设计方法。