RPC框架

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一 什么是RPC框架
    • 1.1 RPC要点:
    • 1.2 RPC框架
    • 1.3 Dubbo 特点


一 什么是RPC框架

RPC:远程过程调用协议。客户端在不知道调用细节的情况下,调用远程计算机上的某个对象。就像调用本地应用程序中的对象一样。
官方定义:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

1.1 RPC要点:

  1. 既然是协议,就要遵守规范,遵循这套规范实现的有Dubbo、Thrift、GRPC、Hetty。
  2. RPC认为自己在调用本地对象,不需要关心TCP/UDP还是HTTP协议。
  3. 在本地应用程序中,对某个对象的调用需要传递参数、返回调用结果。至于被调用的对象内部如何使用这些参数,并计算出处理结果,调用方不需要关心。对于远程调用,这些参数以一种信息格式传递给网络上的另一台计算机,这些信息格式怎样构成,调用方不需要关心。

1.2 RPC框架

gRPC
Dubbo:分布式服务框架,以及SOA治理方案。主要功能包括高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级。
Spring Cloud:

1.3 Dubbo 特点

1.远程通讯
2.集群容错
3.自动发现

RPC框架_第1张图片
使用 Dubbo 构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,但是如果你是一名高手,那这些都不是问题;而 Spring Cloud 就像品牌机,在 Spring Source 的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。

关于 Dubbo 和 Spring Cloud 的相关概念和对比,我个人比较倾向于 Spring Cloud,原因就是真正的微服务框架、提供整套的组件支持、使用简单方便、强大的社区支持等等,另外,因为考虑到 .NET/.NET Core 的兼容处理,RPC 并不能很好的实现跨语言(需要借助跨语言库,比如 gRPC、Thrift,但因为 Dubbo 本身就是“gRPC”,在 Dubbo 之上再包一层 gRPC,有点重复封装了),而 HTTP REST 本身就是支持跨语言实现,所以,Spring Cloud 这一点还是非常好的(Dubbox 也支持,但性能相比要差一些)。

但凡事无绝对,每件事物有好的地方也有不好的地方,总的来说,Dubbo 和 Spring Cloud 的主要不同体现在两个方面:服务调用方式不同和专注点不同(生态不同)。

你可能感兴趣的:(springcloud,rpc,dubbo,java)