一、rpc定义:
rpc(远程过程调用),它是一种通过网络从远程计算机获取服务,就像本地调用服务,不需要程序员了解底层的网络技术协议。
比如两台服务器A和B,A需要调用B的服务,但是二者不在同一内存空间,所以无法直接调用。需要规范调用参数和数据。
通过rpc框架,可以避免冗余的网络通信代码,就像调用本地服务一样,让使用者对网络通信细节透明。
例如:
@AutoWired
private HelloService helloService;
helloService.hello();
二、rpc调用过程
1.消费者以本地调用方式调用远程服务。
2.client stub 将调用方法、参数组装为消息体传输。
3.client stub 找到服务方,并发送消息。
4.server stub 收到消息,并解码。
5.server stub 利用解码结果调用本地服务。
6.server stub 把返回结果打包发动给消费者。
7.client stub接收到消息,并进行解码。
8.消费者获得调用结果。
rpc的目标是把步骤2-7封装起来,对用户透明。