微服务之间是如何通讯的?

微服务之间是如何通讯的?

展开
收起
问问小秘 2020-01-03 15:10:25 481 分享 版权
1 条回答
写回答
取消 提交回答
  • 第一种:远程过程调用(Remote Procedure Invocation)

    直接通过远程过程调用来访问别的service。

    示例:REST、gRPC、Apache、Thrift

    优点:

    简单,常见。因为没有中间件代理,系统更简单
    

    缺点:

    只支持请求/响应的模式,不支持别的,比如通知、请求/异步响应、发布/订阅、发布/异步响应 降低了可用性,因为客户端和服务端在请求过程中必须都是可用的

    第二种:消息

    使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。

    示例:Apache Kafka、RabbitMQ

    优点:

    把客户端和服务端解耦,更松耦合 提高可用性,因为消息中间件缓存了消息,直到消费者可以消费 支持很多通信机制比如通知、请求/异步响应、发布/订阅、发布/异步响应 缺点:

    消息中间件有额外的复杂性

    2020-01-03 15:11:05
    赞同 展开评论
问答分类:
问答标签:
问答地址:

为微服务建设降本增效,为微服务落地保驾护航。

还有其他疑问?
咨询AI助理