第一种:远程过程调用(Remote Procedure Invocation)
直接通过远程过程调用来访问别的service。
示例:REST、gRPC、Apache、Thrift
优点:
简单,常见。因为没有中间件代理,系统更简单
缺点:
只支持请求/响应的模式,不支持别的,比如通知、请求/异步响应、发布/订阅、发布/异步响应 降低了可用性,因为客户端和服务端在请求过程中必须都是可用的
第二种:消息
使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。
示例:Apache Kafka、RabbitMQ
优点:
把客户端和服务端解耦,更松耦合 提高可用性,因为消息中间件缓存了消息,直到消费者可以消费 支持很多通信机制比如通知、请求/异步响应、发布/订阅、发布/异步响应 缺点:
消息中间件有额外的复杂性
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。