微服务开发:从基础到部署与监控的全面指南
1. 关联请求与响应
在请求消息中传递关联 ID,并且微服务将该信息持久化到响应中时,客户端可以使用该响应进行进一步处理。以咖啡店为例,当你点了一杯拿铁,咖啡师会记录下饮品类型和你的名字。之后会并行进行两个过程:制作饮品和处理付款。只有当饮品制作完成且付款成功后,你才会被通知“Sean,你的拿铁好了”。这里,顾客的名字和饮品名称作为关联 ID,用于告知顾客订单已完成。
这个例子展示了一个同步业务流程。在下单后才开始等待饮品,接着会有两个异步过程:制作饮品和处理付款。这两个过程完成后,会发起另一个异步过程,即通知你饮品已准备好以及取餐位置。在制作拿铁的过程中,你可以看报纸甚至取消订单,这种通知被称为“领域事件”。
2. 发布/订阅(Pub/Sub)模式
这引出了另一种异步调用风格——发布/订阅(Pub/Sub)模式。这是一种在消息总线上监听待处理工作消息的方式。发送者发布消息,所有监听者根据消息自行做出反应。可以将其类比为报纸公司,它每天向多个订阅者发布同一期报纸,每个订阅者都有机会独立阅读并对相同内容做出反应。
基于持久化的 Pub/Sub 模式中,只有一个监听实例处理消息。以日志记录为例,当需要记录的事件发生时,会创建包含待写入内容的消息。如果没有持久化,每个订阅者都会记录该消息,从而导致重复记录。使用持久化模式,一个订阅者会锁定消息进行处理,其他监听者可以处理下一条消息,但每次只有一条消息被处理。这样,每个事件只会创建一个日志条目。如果订阅者未能完成任务,消息将被中止,另一个订阅者可以接手处理。
3. 消息格式
消息中的数据格式使通信能够跨语言和技
超级会员免费看
订阅专栏 解锁全文
168万+

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



