RPC详解

RPC调用分类

  1. 同步调用:客户端等待服务端调用执行完成并返回结果
  2. 异步调用:客户端不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果,若客户端不关系调用返回结果,则变成单向异步调用,单向调用不用返回结果。

RPC结构拆解

  • RPC 服务方通过 RpcServer 去导出(export)远程接口方法。
  • 客户方通过 RpcClient 去引入(import)远程接口方法。
  • 客户方像调用本地方法一样去调用远程接口方法,RPC 框架提供接口的代理实现,实际的调用将委托给代理 RpcProxy 。
  • 代理封装调用信息并将调用转交给 RpcInvoker 去实际执行。
  • 在客户端的 RpcInvoker 通过连接器 RpcConnector 去维持与服务端的通道 RpcChannel, 并使用 RpcProtocol 执行协议编码(encode)并将编码后的请求消息通过通道发送给服务方。
  • RPC 服务端接收器 RpcAcceptor 接收客户端的调用请求,同样使用 RpcProtocol 执行协议解码(decode)。
  • 解码后的调用信息传递给 RpcProcessor 去控制处理调用过程
  • 最后再委托调用给 RpcInvoker 去实际执行并返回调用结果。

RPC组件职责

  • RpcServer:负责导出(export)远程接口
  • RpcClient:负责导入(import)远程接口的代理实现
  • RpcProxy:远程接口的代理实现
  • RpcInvoker:客户方实现(负责编码调用信息和发送调用请求到服务方并等待调用结果返回);服务方实现(负责调用服务端接口的具体实现并返回调用结果)
  • RpcProtocol:负责协议编/解码
  • RpcConnector:负责维持客户方和服务方的连接通道和发送数据到服务方
  • RpcAcceptor:负责接收客户方请求并返回请求结果
  • RpcProcessor:负责在服务方控制调用过程,包括管理调用线程池、超时时间等
  • RpcChannel:数据传输通道

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值