理解rpc协议,为什么使用rpc
RPC 全称 Remote Procedure Call——远程过程调用。在学校学编程,我们写一个函数都是在本地调用就行了。但是在互联网公司,服务都是部署在不同服务器上的分布式系统,如何调用呢? RPC技术简单说就是为了解决远程调用服务的一种技术,使得调用者像调用本地服务一样方便透明。 下图是客户端调用远端服务的过程: 1)客户端client发起服务调用请求。 2)client stub 可以理解成一个代理,会将调用方法、参数按照一定格式进行封装,通过服务提供的地址,发起网络请求。 3)消息通过网络传输到服务端。 4)server stub接受来自socket的消息 5)server stub将消息进行解包、告诉服务端调用的哪个服务,参数是什么 6)结果返回给server stub 7)sever stub把结果进行打包交给socket 8)socket通过网络传输消息 9)client slub 从socket拿到消息 10)client stub解包消息将结果返回给client。 一个RPC框架就是把步骤2到9都封装起来。 为什么需要RPC 1、首先要明确一点:RPC可以用HTTP协议实现,并且用HTTP是建立在 TCP 之上最广泛使用的 RPC,但是互联网公司往往用自己的私有协议,比如鹅厂的JCE协议,私有协议不具备通用性为什么还要用呢?因为相比于HTTP协议