面试归纳(什么是rpc?)

352 阅读1分钟

rpc其实叫做远端调用,可以让做到调用远端计算机的函数和调用本地函数得到一样的结果,当然一个是毫秒级,一个是纳秒级。

rpc调用分为两种

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

rpc 分为调用端和提供服务端。

avatar

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