# pinghaoRpc **Repository Path**: cold-abyss_admin/pinghaoRpc ## Basic Information - **Project Name**: pinghaoRpc - **Description**: b站冷环渊教学视频同款代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-16 - **Last Updated**: 2026-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pinghaoRpc #### 介绍 这是一个基于 Netty 实现的 RPC(远程过程调用)框架,参考 B 站冷环渊教学视频开发。 [教学视频地址](https://www.bilibili.com/video/BV1127BzjEaU) 该框架实现了服务注册与发现、负载均衡、序列化、网络通信、容错处理等核心功能,适用于分布式系统中的服务调用场景。 #### 软件架构 - **JDK**: 8 - 17 - **服务注册与发现**: Nacos 2.5.x - **网络通信**: Netty 4.1.51 - **相关技术**: - Resilience4j (熔断、重试) - 自定义 JSON 序列化 - 两种负载均衡策略:轮询、一致性哈希 - 令牌桶限流 #### 项目模块 - **pinghaoRpc-api**: 通用接口和实体类 - `Task` 任务实体 - `TaskService` 服务接口 - **pinghaoRpc-core**: 核心实现 - 网络通信 (Netty 客户端/服务端) - 序列化/反序列化 (JSON) - 服务注册与发现 (Nacos) - 负载均衡 - 限流、熔断、重试机制 - 动态代理 - **pinhaoRpc-server**: 服务端示例 - 基于注解自动启动 RPC 服务 - 实现示例服务 #### 核心特性 1. **服务注册与发现**: 通过 Nacos 实现服务的注册与发现 2. **负载均衡**: 支持轮询和一致性哈希两种策略 3. **序列化**: JSON 格式序列化 4. **容错机制**: - Resilience4j 熔断器 - 重试机制 5. **限流**: 令牌桶算法实现接口限流 6. **自动配置**: 注解驱动启动 RPC 服务 #### 快速开始 1. 启动 Nacos 服务端 2. 搭建服务提供者 ```java // 添加注解启用 RPC 服务 @EnableFinishRpcServer public class ServerApplication { public static void main(String[] args) { // 应用启动后自动注册服务 } } ``` 3. 配置服务 在 `application.properties` 中配置: ```properties rpc.port=8088 rpc.host=localhost rpc.nacos.address=127.0.0.1:8848 rpc.nacos.username=nacos rpc.nacos.password=nacos rpc.version=1.0 rpc.registry=nacos rpc.serializer=json rpc.loadbalance=round ``` 4. 客户端调用 ```java // 获取代理对象 ServiceProxy proxy = new ServiceProxy(); TaskService taskService = proxy.getProxy(TaskService.class); // 调用远程服务 Task task = taskService.getTaskById(1); ``` #### 相关注解 - `@EnableFinishRpcServer`: 启用 RPC 服务端 - `@FinishService`: 标记服务实现类,支持重试配置 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request