RPC 全称是 Remote Procedure Call ,即远程过程调用,其对应的是我们的本地调用。
远程其实指的就是需要网络通信,可以理解为调用远程机器上的方法。
那可能有人说:我用 HTTP 调用不就是远程调用了,那不也叫 RPC 了?
不是的,RPC 的目的是:让我们调用远程方法像调用本地方法一样无差别,解决分布式系统中服务之间的调用问题。
RPC是一种技术的概念名词
HTTP是一种协议,RPC可以通过 HTTP 来实现,也可以通过Socket自己实现一套协议来实现。
RPC框架的好处简单、直接、开发方便。
如果是一个大型的网站,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了:
1、首先就是长链接,不必每次通信都要像http一样去3次握手,减少了网络开销;
2、其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。
3、最后是安全性。
RPC是一种概念,http也是RPC实现的一种方式。
论复杂度,dubbo/hessian用起来是超级简单的。至于为什么用dubbo/hessian,有几点:
1、调用简单,真正提供了类似于调用本地方法一样调用接口的功能 。
2、参数返回值简单明了 参数和返回值都是直接定义在jar包里的,不需要二次解析。
3、轻量,没有多余的信息。
4、便于管理,基于dubbo的注册中心。
深自缄默,如云漂泊。