RPC全称RemoteProcedureCall——远程过程调用。在学校学习编程习编程时,我们可以在本地调用一个函数。但是在互联网公司,服务是一个分布式系统,部署在不同的服务器上。如何调用?
RPC简单来说,技术就是一种解决远程调用服务的技术,使调用者像调用本地服务一样方便透明。
1)客户端client发起服务调用请求。
2)clientstub它可以理解为一个代理,并将调用方法.按一定格式封装参数,通过服务提供的地址,启动网络请求。
3)信息通过网络传输到服务端。
4)serverstub接受来自socket的消息
5)serverstub解包消息.告诉服务器调用哪些服务,参数是什么
6)结果返回serverstub
7)severstub打包结果socket
8)socket通过网络传输消息
9)clientslub从socket拿到消息
10)clientstub解包消息将返回结果client。
一个RPC框架是封装步骤2到9。
为什么需要RPC
1.首先要明确一点:RPC可以用HTTP实现并使用协议HTTP是建立在TCP最广泛使用的RPC,然而,互联网公司经常使用自己的私人协议,如鹅厂JCE协议,为什么私有协议没有通用性?HTTP协议,RPC采用二进制字节码传输,更高效、更安全。
2.现在行业提倡“微服务“目前,服务间沟通有两种方式,RPC就是其中之一。RPC可以保证不同服务之间的相互调用。即使是跨语言跨平台也不是问题,这使得构建分布式系统更容易。
3.RPC服务降级的框架.流量控制功能,确保服务的高可用性。