面向服务架构之RPC原理与实例

一、RPC概述

  RPC(Remote Procedure Call)即远程过程调用,容许一台计算机调用另外一台计算机上的程序获得结果,而代码中不须要作额外的编程,就像在本地调用同样。主要是为了应对当前互联网项目量级愈来愈大而出现的。git

二、Broker模式介绍

  

 

三、RPC结构拆解

  

 

四、RPC客户端组件与职责

  -RpcClient:负责导入远程接口的代理实现github

  -RpcProxy:远程接口的代理实现编程

  -RpcInvoker:负责编码和发送调用请求到服务方并等待结果框架

  -RpcProtocol:负责协议的编/解码性能

  -RpcConnector:负责维护客户/服务方链接通道和发送数据到服务方编码

  -RpcChannel:数据传输通道线程

五、RPC服务端组件与职责

  -RpcServer:负责导出远程接口代理

  -RpcInvoker:负责调用服务端接口的具体实现并返回结果blog

  -RpcProtocol:负责协议的编/解码接口

  -RpcAcceptor:负责接收客户方请求并返回请求结果

  -RpcProcessor:负责在服务方控制调用过程,包括线程池、超时等

  -RpcChannel:数据传输通道

六、RPC导出/导入远程接口

七、RPC数据传输

  -传输协议:建议选择稳定性较强的链接协议(HTTP、TCP),像UDP就不建议选择

  -链接:长链接、短链接、心跳机制

八、RPC序列化

  -序列化/反序列化:接口方法、方法参数、调用属性等

  -编码格式:XML、JSON、Binary...

  -关注点:效率、字节长度、兼容性...

九、RPC方法调用

  -RpcInvoker:反射机制

  -RpcProcessor:调用效率、资源隔离、超时控制

十、RPC异常处理

  -远程调用不必定执行

  -远程调用可能排除RPC框架自带的异常

  -性能差别

十一、RPC实例

  实例代码移步https://github.com/cq1415583094/RPC-Demo

相关文章
相关标签/搜索