System Design

系统设计基础7:发布订阅和请求响应

2019-03-21  本文已影响0人  MeazZa

我们在微服务的基础上,继续介绍微服务之间通信的两种方式:请求响应和发布订阅,以及它们各自的一些实现细节和优缺点比较。

请求响应(Request/Response)

架构图

下图是采用请求响应方式设计的架构图。客户端的请求先发送到S0,S0继续将请求同时发送给S1和S2,这里并不关心发送的先后顺序。S2在接收到请求后,再将请求发送给S3和S4。当S3和S4完成对请求的处理后,将响应发送给S2。S0在接收到S1和S2的响应后,在处理后将最终的响应返回给客户端。

请求-响应
优缺点分析

发布订阅(Publisher/Subscriber)

架构图

发布订阅的架构图和请求响应的区别在于,微服务之间的通信是通过消息队列完成的,某服务需要请求其他服务时,将请求的相关信息封装成消息,发送到消息队列中,其他服务订阅该消息队列,获取信息并处理请求。

发布-订阅

优缺点分析

小结

这两种架构设计方式是各有优缺点的,比如对于事务性要求较高的财务系统,使用发布订阅的方式需要做很多事务性的保证;如果是像Twitter这样的系统,就很适合使用发布订阅的方式设计了,具体还是要按需考虑。

欢迎大家订阅专题,其中包含了系统设计基础系列的全部文章:System Design

上一篇下一篇

猜你喜欢

热点阅读