# base-rpc **Repository Path**: kk-lulinfeng/base-rpc ## Basic Information - **Project Name**: base-rpc - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-15 - **Last Updated**: 2025-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # base-rpc 项目说明 ## 项目简介 `base-rpc` 是一个基于 Java 的简易 RPC 框架,采用模块化设计,包含核心实现、服务端/客户端示例及公共接口定义,便于理解和扩展。 ## 项目结构 ``` base-rpc/ ├── base-rpc-easy/ # RPC 核心实现 ├── example-common/ # 公共接口与数据模型 ├── example_provider/ # 服务端示例 ├── example_consumer/ # 客户端示例 └── pom.xml # 父级聚合与依赖管理 ``` ## 各模块说明 ### 1. base-rpc-easy(核心实现) - **proxy/** 动态代理相关,实现服务代理工厂与代理逻辑 - `ServiceProxyFactory.java` 代理工厂 - `ServiceProxy.java` 动态代理实现 - **server/** HTTP 服务端实现 - `VertxHttpServer.java` 基于 Vert.x 的 HTTP 服务端 - `HttpServerHandler.java` HTTP 请求处理器 - `HttpServer.java` 服务端启动入口 - **model/** 通用数据模型 - `RpcRequest.java` RPC 请求对象 - `RpcResponse.java` RPC 响应对象 - **serializer/** 序列化相关 - `Serializer.java` 序列化接口 - `JdkSerializer.java` JDK 默认序列化实现 - **registry/** 本地注册中心 - `LocalRegistry.java` 服务注册与发现 #### 主要依赖 - [Vert.x](https://vertx.io/) 4.5.1:高性能异步网络框架 - [Hutool](https://hutool.cn/) 5.8.16:工具类库 - [Lombok](https://projectlombok.org/) 1.18.30:简化 Java 代码 ### 2. example-common(公共接口与模型) - **model/User.java** 用户数据模型 - **service/UserService.java** 用户服务接口 ### 3. example_provider(服务端示例) - **EasyProviderExample.java** 服务端启动示例 - **UserServiceImpl.java** 用户服务实现 ### 4. example_consumer(客户端示例) - **EasyConsumerExample.java** 客户端调用示例 - **UserServiceProxy.java** 用户服务代理 ## 依赖关系 - `example_provider` 和 `example_consumer` 都依赖 `base-rpc-easy` 和 `example-common` - `base-rpc-easy` 只依赖 Vert.x、Hutool、Lombok ## 典型用法 ### 服务端启动 ```java public class EasyProviderExample { public static void main(String[] args) { // 注册服务实现 LocalRegistry.register(UserService.class.getName(), UserServiceImpl.class); // 启动 HTTP 服务 new VertxHttpServer().start(8080); } } ``` ### 客户端调用 ```java public class EasyConsumerExample { public static void main(String[] args) { // 获取服务代理 UserService userService = ServiceProxyFactory.getProxy(UserService.class); // 远程调用 User user = userService.getUser("kk"); System.out.println(user); } } ``` ## 适用场景 - 适合学习 RPC 原理、动态代理、序列化、服务注册与发现等基础知识 - 可作为自定义 RPC 框架的起点 ## 运行环境 - JDK 11 及以上 - Maven 3.x --- 如需详细代码说明,请查阅各模块源码。