面向服务架构之RPC原理与实例
1、RPC概述
RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。主要是为了应对当前互联网项目量级越来越大而出现的。
2、Broker模式介绍
3、RPC结构拆解
4、RPC客户端组件与职责
-RpcClient:负责导入远程接口的代理实现
-RpcProxy:远程接口的代理实现
-RpcInvoker:负责编码和发送调用请求到服务方并等待结果
-RpcProtocol:负责协议的编/解码
-RpcConnector:负责维护客户/服务方连接通道和发送数据到服务方
-RpcChannel:数据传输通道
5、RPC服务端组件与职责
-RpcServer:负责导出远程接口
-RpcInvoker:负责调用服务端接口的具体实现并返回结果
-RpcProtocol:负责协议的编/解码
-RpcAcceptor:负责接收客户方请求并返回请求结果
-RpcProcessor:负责在服务方控制调用过程,包括线程池、超时等
-RpcChannel:数据传输通道
6、RPC导出/导入远程接口
7、RPC数据传输
-传输协议:建议选择稳定性较强的连接协议(HTTP、TCP),像UDP就不建议选择
-连接:长连接、短连接、心跳机制
8、RPC序列化
-序列化/反序列化:接口方法、方法参数、调用属性等
-编码格式:XML、JSON、Binary...
-关注点:效率、字节长度、兼容性...
9、RPC方法调用
-RpcInvoker:反射机制
-RpcProcessor:调用效率、资源隔离、超时控制
10、RPC异常处理
-远程调用不一定执行
-远程调用可能排除RPC框架自带的异常
-性能差异
11、RPC实例
实例代码移步https://github.com/cq1415583094/RPC-Demo