魚皮RPC 框架
從0 到1,帶你開發自己的RPC 框架
魚皮原創項目教程系列:https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd
項目介紹
基於Java + Etcd + Vert.x 的高性能RPC 框架,用新穎的技術棧從0 到1 帶大家開發輪子。教程由淺入深,可以學習並實踐基於Vert.x 的網絡服務器、序列化器、基於Etcd 和ZooKeeper 的註冊中心、反射、動態代理、自定義網絡協議、多種設計模式(單例/ 工廠/ 裝飾者等)、負載均衡器設計、重試和容錯機制、Spring Boot Starter 註解驅動開發等,大幅提升架構設計能力。
項目分為基礎版和擴展版:
- 基礎版只需學幾個小時,就能寫在簡歷上的小項目~
- 擴展版將是充滿亮點的技術類項目,搭配一個業務項目,讓簡歷更有競爭力。
開始學習或了解詳情:手寫RPC 框架(24 年最新)
開源地址:https://github.com/liyupi/yu-rpc
教程第一章可免費學習
導學視頻- RPC 講解
項目展示
目錄結構:

詳細的保姆級文字教程:

技術選型
後端
後端技術以Java 為主,但所有的思想和設計都是可以復用到其他語言的,代碼不同罷了。
- ️ Vert.x 框架
- ️ Etcd 雲原生存儲中間件(jetcd 客戶端)
- ZooKeeper 分佈式協調工具(curator 客戶端)
- ️ SPI 機制
- ️ 多種序列化器
- JSON 序列化
- Kryo 序列化
- Hessian 序列化
- ️ 多種設計模式
- ️ Spring Boot Starter 開發
- 反射和註解驅動
- Guava Retrying 重試庫
- JUnit 單元測試
- Logback 日誌庫
- Hutool、Lombok 工具庫
源碼目錄
- yu-rpc-core:魚皮RPC 框架核心代碼
- yu-rpc-easy:魚皮RPC 框架簡易版(適合新手入門)
- example-common:示例代碼公用模塊
- example-consumer:示例服務消費者
- example-provider:示例服務提供者
- example-springboot-consumer:示例服務消費者(Spring Boot 框架)
- example-springboot-provider:示例服務提供者(Spring Boot 框架)
- yu-rpc-spring-boot-starter:註解驅動的RPC 框架,可在Spring Boot 項目中快速使用
項目教程大綱
這個項目內容非常多,大家可以看看有沒有自己想學的知識點。
第一章:RPC 框架簡易版
- RPC 基本概念和作用
- RPC 框架實現思路| 基本設計
- RPC 框架實現思路| 擴展設計
- 簡易版RPC 開發| 項目初始化
- 簡易版RPC 開發| web 服務器
- 簡易版RPC 開發| 本地服務註冊器
- 簡易版RPC 開發| 序列化器
- 簡易版RPC 開發| 請求處理器
- 簡易版RPC 開發| 消費者代理
- 簡易版RPC 開發| 測試驗證
第二章:RPC 框架擴展版
- 全局配置加載| 擴展版項目初始化
- 全局配置加載| 配置加載實現
- 全局配置加載| 維護全局配置對象
- 接口Mock 設計實現
- 序列化器| 主流序列化器對比
- 序列化器| 多種序列化器實現
- 序列化器| SPI 機制
- 序列化器| 可擴展序列化器實現(SPI + 工廠模式)
- 註冊中心| 註冊中心核心能力
- 註冊中心| 註冊中心技術選型
- 註冊中心| Etcd 雲原生中間件入門
- 註冊中心| 基於Etcd 實現註冊中心
- 註冊中心| 可擴展註冊中心實現(SPI + 工廠模式)
- 註冊中心優化| 心跳檢測和續期機制
- 註冊中心優化| 服務節點下線機制
- 註冊中心優化| 消費端服務緩存
- 註冊中心優化| 緩存更新(Etcd 監聽機制)
- 註冊中心優化| ZooKeeper 註冊中心實現
- 自定義協議| 需求分析及方案設計
- 自定義協議| 消息結構設計(參考Dubbo)
- 自定義協議| 網絡傳輸設計(基於Vert.x 實現TCP 服務器)
- 自定義協議| 編碼/ 解碼器
- 自定義協議| TCP 請求處理器
- 自定義協議| TCP 請求客戶端
- 自定義協議| 粘包半包問題分析
- 自定義協議| 使用Vert.x 解決粘包半包問題
- 自定義協議| 客戶端代碼優化(裝飾者模式)
- 負載均衡| 負載均衡概念和常用算法
- 負載均衡| 一致性Hash
- 負載均衡| 多種負載均衡器實現
- 負載均衡| 可擴展負載均衡器實現(SPI + 工廠模式)
- 重試機制| 重試等待策略
- 重試機制| 重試方案設計
- 重試機制| 多種重試策略實現
- 重試機制| 可擴展重試策略實現(SPI + 工廠模式)
- 容錯機制| 容錯策略和實現方式
- 容錯機制| 容錯方案設計
- 容錯機制| 多種容錯策略實現
- 容錯機制| 可擴展容錯策略實現(SPI + 工廠模式)
- 啟動機制| 框架快速啟動類
- 啟動機制| 註解驅動設計
- 啟動機制| Spring Boot Starter 註解驅動實現
- 項目擴展思路
完整項目教程學習
點擊加入編程導航,魚皮往期所有原創項目均可學習。