# 手写RPC框架 **Repository Path**: chenyamin11/handwriting-rpc-framework ## Basic Information - **Project Name**: 手写RPC框架 - **Description**: 使用自己开发的RPC框架做一个分布式计算器 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2020-09-08 - **Last Updated**: 2023-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RPC 手写简易版RPC框架 ## 项目架构分析 **1.common通用工具模块** **2.serialize序列化模块** > ​ 序列化和反序列化实现,利用fastjson.JSON实现 **3.transport网络传输模块** - ```java //处理网络请求的handle public interface RequestHandler { void onRequest(InputStream recive, OutputStream toRespon); } ``` - ```java //RPC server服务定义 public interface TransportServer { //初始化Server服务 void init(int port, RequestHandler handler); //开启Server服务 void start(); //关闭Server服务 void stop(); } ``` - ```java //客户端 也是服务消费者 public interface TransportClient { //连接Server服务 void connect(Peer peer); //订阅Server服务 并返回response InputStream write(InputStream data); //关闭 void close(); } ``` **4.Server模块** > ​ 主要调用网络传输模块中`HttpTransportServer`,将请求在Handle中实现,并封装在Response中。 > > ​ 服务注册,服务管理,服务发现的实现 **5.Client模块** > ​ 选择一个server端点连接,然后代理反射调用方法。