RPC框架

什么是RPC

rpc全称是Remote Procedure Call 远程过程调用

  • 两台服务器A,B,一个部署在A服务器上的应用,想要调用B服务器上应用提供的函数(方法),由于不在一个内存空间,不可以直接调用,需要通过网络来传递数据
客户端调用远程服务的过程
  1. 客户端client发起调用服务的请求
  2. client stub(代理)将调用的方法,参数按照一定的格式封装,通过服务提供的地址,发起网络请求
  3. 消息通过网络发送给服务端
  4. server stub 接收来自scoket消息
  5. server stub解包,告诉服务端调用哪个服务及参数
  6. 返回结果给server stub
  7. server stub将结果打包给socket
  8. socket通过网络传递消息
  9. client stub接收来自socket的消息
    10.client stub解包并将消息传递给client
RPC的三个过程
  • 通讯协议

RPC是基于TCP进行远程调用,数据传输在传输层完成;RPC在客户端与服务端之间建立Socket连接,所有的数据交互都在此连接中传输。连接可以按需连接,调用结束之后就断掉,也可以是长连接,多个远程调用共享一个连接

  • 寻址

A服务器上的应用告诉底层的RPC框架,如何连接B服务器及特定端口,方法名,这样才能完成调用

例如:基于Web服务协议栈的RPC,需要提供一个endpoint URI,或者从UDDI服务查找

  • 数据序列化
  1. 由于网路协议是基于二进制的,内存中的参数值要序列化成二进制格式,通过寻址和传输序列化的二进制参数发送给B服务器

  2. B服务器接收到请求后,反序列化参数,恢复为内存中的数据形式,然后寻找对应的方法进行本地调用,然后得到返回值

  3. 返回值需要返回给A服务器,也是经过序列化方式传输,A服务器接收后再反序列化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值