RPC:Remote Procedure Call 即远程过程调用
是一种常见的一种通信方法,从跨进程到跨物理机以及有即使年历史
理论知识:
跨进程交互形式:
RestFul、WebService、HTTP、基于DB做数据交互、基于MQ数据交互、以及RPC
图解交互形式:
现有框架对比
核心原理(整体架构)
RPC Server -->(暴露服务,具体信息注册到注册中心) Registry -->(通知给消费者) RPC Client
技术栈
基础知识:javaCore、maven、反射
动态代理:java动态代理(生成存根实际调用对象)
序列化:fastjson(java对象转为二进制数据再转java对象)
网络通信:jetty、URLConnection(传输序列化后的数据)
实战篇
一、准备就绪
1. 创建工程、制定协议、通用工具方法
2. 实现序列化模块
3. 实现网络模块
4. 实现server模块
5. 实现client模块
6. gk-rpc实用案例
二、类图
1. 协议模块:描述信息、请求数据,响应数据
2. 序列化模块:序列化和反序列化
3. 网络模块:client和Server
4. server模块:将服务信息暴露到ServiceManager
5. client模块:RemoteInvoker请求数据和返回数据,多个请求就TransportSelecter抽象进行随机选择器