1.什么是RPC?

RPC,全程 Remote Procedure Call,即远程过程调用。主要作用是屏蔽网络编程细节,实现调用远程方法就像调用本地方法(同一个进程中的方法)一样的体验。

2.一次RPC调用的过程

(1) 服务消费方(client) 以本地调用的方式调用客户端存根(远程方法在本地的模拟对象,由方法名和方法参数组成)client stub 接受到调用后负责将方法名,方法参数等包装,并将包装后的消费通过网络发送到服务端;

(2) 服务端收到消息后,交给代理存根在服务器的部分后解码为实际的方法名和参数;

(3)service stub根据解码结果调用服务器上本地的实际服务;

(4)本地服务执行并将结果返回给server stub;

(5)service stub将返回结果打包成消息并发送至消费方;

(6)client stub接受到消息,并进行解码;

(7)服务消费方得到最终结果。

RPC框架的目的是要将中间步骤都封装起来,让我们进行远程方法调用的时候感觉就像本地调用一样。

rpc技术有哪些 rpc的作用_封装

 

3.RPC和HTTP的区别

Http是协议,在应用层。http中所使用的报文中有效字节仅仅占约30%,you 70%的时间用于传输元数据废编码。需要可读性强,包括输入,输出,解析等;

RPC是方法,在传输层。它的实现可能用到http。RPC仅通过序列化发送有效数据,省去了很多无效的数据,提高传输效率。

简单来说,RPC框架更多的是封装了“服务发现,负载均衡,熔断降级”一类面向服务的高级特性。良好的RPC调用是面向服务的封装,针对服务的可用性和效率等都做了优化。

并且,RPC的调用仅设计到传输协议+序列化协议,而不用考虑接口可读性,可以更方便的调用。