开发者社区 > 云原生 > 微服务 > 正文

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

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

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

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

    示例:REST、gRPC、Apache、Thrift

    优点:

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

    缺点:

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

    第二种:消息

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

    示例:Apache Kafka、RabbitMQ

    优点:

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

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

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

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

相关电子书

更多
微服务治理技术白皮书 立即下载
微服务与Serverless 立即下载
EDAS4.0 助力企业一站实现微服务架构转型与 K8s 容器化升级 立即下载