一、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封装起来,对用户透明。

posted on 2018-06-06 13:16  知己一生  阅读(135)  评论(0编辑  收藏  举报