微服务架构(五): 服务间通信方式
工作中使用了微服务架构,接下来的一段时间里,我会写一系列的文章来介绍微服务架构,同时我也会在github上写一个microservices的应用框架(地址会在后续文章给出)。这篇文章主要讲述了微服务架构中服务间的通信方式。翻译和整理自:http://microservices.io/patterns/communication-style/rpi.htmlhttp://mi
·
工作中使用了微服务架构,接下来的一段时间里,我会写一系列的文章来介绍微服务架构,同时我也会在github上写一个microservices的应用框架(地址会在后续文章给出)。
这篇文章主要讲述了微服务架构中服务间的通信方式。
翻译和整理自:
- http://microservices.io/patterns/communication-style/rpi.html
- http://microservices.io/patterns/communication-style/messaging.html
- http://microservices.io/patterns/communication-style/domain-specific.html
一、远程过程调用(Remote Procedure Invocation)
直接通过远程过程调用来访问别的service。
示例:
优点:
- 简单,常见
- 因为没有中间件代理,系统更简单
缺点:
- 只支持请求/响应的模式,不支持别的,比如通知、请求/异步响应、发布/订阅、发布/异步响应
- 降低了可用性,因为客户端和服务端在请求过程中必须都是可用的
二、消息
使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。
示例:
优点:
- 把客户端和服务端解耦,更松耦合
- 提高可用性,因为消息中间件缓存了消息,直到消费者可以消费
- 支持很多通信机制比如通知、请求/异步响应、发布/订阅、发布/异步响应
缺点:
- 消息中间件有额外的复杂性
更多推荐
已为社区贡献6条内容
所有评论(0)