# Tree-RPC **Repository Path**: Tree-Arthur/tree-rpc ## Basic Information - **Project Name**: Tree-RPC - **Description**: RPC(Remote Procedure Call)即远程过程调用,是一种计算机通信协议,它允许程序在不同的计算机之间进行通信和交互,就像本地调用一样。 新开了一家卖烧鸭的店,作为消费者想要把烧鸭购买到家。 以前,只能自己跑到线下购买,耗时耗力。 现在有了手机、网络、外卖平台,只需在家,就能让骑手把烧鸭送到家,无需关注网络是怎么传输、外卖平台是怎么操作、骑手小哥是怎么配送只负责享受外卖就行。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-05 - **Last Updated**: 2024-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TREE RPC 框架 > 从 0 到 1,开发自己的 RPC 框架 ## 项目介绍 基于 Java + Etcd + Vert.x 的高性能 RPC 框架,用新颖的技术栈从 0 到 1 带大家开发轮子。教程由浅入深,可以学习并实践基于 Vert.x 的网络服务器、序列化器、基于 Etcd 和 ZooKeeper 的注册中心、反射、动态代理、自定义网络协议、多种设计模式(单例 / 工厂 / 装饰者等)、负载均衡器设计、重试和容错机制、Spring Boot Starter 注解驱动开发等,大幅提升架构设计能力。 项目分为基础版和扩展版: - 基础版只需学几个小时,就能写的小项目~ - 扩展版将是充满亮点的技术类项目,搭配一个业务项目,更有竞争力。 ## 项目展示 目录结构: ![](./docs/tutorial.jpg) ## 技术选型 ### 后端 后端技术以 Java 为主,但所有的思想和设计都是可以复用到其他语言的,代码不同罢了。 - ⭐️ Vert.x 框架 - ⭐️ Etcd 云原生存储中间件(jetcd 客户端) - ZooKeeper 分布式协调工具(curator 客户端) - ⭐️ SPI 机制 - ⭐️ 多种序列化器 - JSON 序列化 - Kryo 序列化 - Hessian 序列化 - ⭐️ 多种设计模式 - 双检锁单例模式 - 工厂模式 - 代理模式 - 装饰者模式 - ⭐️ Spring Boot Starter 开发 - 反射和注解驱动 - Guava Retrying 重试库 - JUnit 单元测试 - Logback 日志库 - Hutool、Lombok 工具库 ## 源码目录 - tree-rpc-core:TREE RPC 框架核心代码 - tree-rpc-easy:TREE RPC 框架简易版(适合新手入门) - example-common:示例代码公用模块 - example-consumer:示例服务消费者 - example-provider:示例服务提供者 - example-springboot-consumer:示例服务消费者(Spring Boot 框架) - example-springboot-provider:示例服务提供者(Spring Boot 框架) - tree-rpc-spring-boot-starter:注解驱动的 RPC 框架,可在 Spring Boot 项目中快速使用 ### 第一章:RPC 框架简易版 1. RPC 基本概念和作用 2. RPC 框架实现思路 | 基本设计 3. RPC 框架实现思路 | 扩展设计 4. 简易版 RPC 开发 | 项目初始化 5. 简易版 RPC 开发 | web 服务器 6. 简易版 RPC 开发 | 本地服务注册器 7. 简易版 RPC 开发 | 序列化器 8. 简易版 RPC 开发 | 请求处理器 9. 简易版 RPC 开发 | 消费者代理 10. 简易版 RPC 开发 | 测试验证 ### 第二章:全局配置加载 1. 全局配置加载 | 扩展版项目初始化 2. 全局配置加载 | 配置加载实现 3. 全局配置加载 | 维护全局配置对象 ### 第三章:接口 Mock 模拟对象 1. 接口 Mock 模拟对象设计实现 ### 第四章:序列化器 1. 序列化器 | 多种序列化器实现 2. 序列化器 | SPI 机制 3. 序列化器 | 可扩展序列化器实现(SPI + 工厂模式)