"我想了解下 springcloud 和 dubbo 的 rpc 通信有什么区别,与谷歌的 grpc 又有什么区别,还有就是分布式服务之间的通信和单体式架构中前后台通信又有什么区别(安卓与后台通信,web 前端与后台通信)"

springcloud、grpc、dubbo 什么区别?

我想了解下 springcloud 和 dubbo 的 rpc 通信有什么区别,与谷歌的 grpc 又有什么区别,还有就是分布式服务之间的通信和单体式架构中前后台通信又有什么区别(安卓与后台通信,web 前端与后台通信)

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    533 引用 • 1145 回帖 • 921 关注
  • gRpc
    7 引用 • 5 回帖
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    37 引用 • 72 回帖 • 668 关注
  • Q&A

    提问之前请先看一下这篇文章 《提问的智慧》精读注解版,好的问题比好的答案更有价值。

    867 引用 • 5386 回帖 • 610 关注
感谢    关注    收藏    赞同    反对    举报    分享
2 回帖    
请输入回帖内容...
  • venyowong      

    首先,对 dubbo 不是很了解,所以只说一下我对于 springcloud 和 grpc 的了解,如果有什么地方说得不对,请指正。
    在 springcloud 中,服务间的调用是通过 http 通信的,其实就相当于在调用 restful 接口。而 grpc 服务间的调用是基于 http2 以及 protobuff 协议的一种通信机制,他要求在调用前需要先定义好接口契约,并使用工具生成代码,然后在代码中调用这些生成的类进行服务调用。两者之间,个人认为 grpc 会有比较多的限制。
    第二个问题,分布式和单体结构的通信区别,个人认为可能就是多了一个负载均衡的差异吧。原生与接口的通信、H5 与接口的通信,个人认为两者不应该有区别,接口只需要暴露出一种通信方式,这样才能节省开发成本。

    感谢    赞同    反对    举报    分享       评论    回复
  • coswind      

    HTTP 是通信协议,RPC 是一种设计实现框架。 RPC 中使用的通信协议大都是长连接,不需要每次经过 3 次握手。 RPC 中使用的通信协议大都自己设计,没有通用标准。 RPC 框架基本都围绕通信协议、传输协议、线程模型展开。

    分布式不是 RPC 的必要特性。

    感谢    赞同    反对    举报    分享       评论    回复