文章目录鱼皮 yu-rpc从 0 到 1 手写 RPC 框架的实践教程1、 这玩意儿是干嘛的2、 为什么是个教学项目3、 设计模式怎么落4、 适合哪些人鱼皮 yu-rpc从 0 到 1 手写 RPC 框架的实践教程yu-rpc 在 GitHub 上已经拿到 601 Star 了。这是鱼皮开源的一个 RPC 框架教学项目专干一件事用 Java 加 Etcd 加 Vert.x 从零手写一个能跑的 RPC 框架把基础版和扩展版拆开讲跟着敲一遍就能填进简历。1、 这玩意儿是干嘛的学过 Java 的人多半看过 RPC 这三个字母但真让你写一个会发现从网络层到序列化再到注册中心全是坑。市面上的 RPC 框架比如 Dubbo 做得太重源码读下来累半死新手想弄懂每一层在干嘛往往一进来就被绕晕。yu-rpc 把这件事拆成两段。基础版只讲清楚 RPC 是什么几个小时的活儿写完能跑通就行。扩展版往里塞 Vert.x 网络服务器、Etcd 注册中心、自定义网络协议、负载均衡、重试容错、Spring Boot Starter 注解驱动把一个生产级 RPC 该有的零件一个个手搓一遍。技术栈选得有点意思。Vert.x 用来做 TCP 服务器比传统 Servlet 那套轻。Etcd 当注册中心云原生那一路的活儿。ZooKeeper 也实现了方便横向对比两套主流方案。序列化器给了 JSON、Kryo、Hessian 三种配合 SPI 机制做可扩展切换。2、 为什么是个教学项目很多简历上的 RPC 项目都是套 Dubbo 壳问下去连网络层怎么粘包都不知道。这个项目把每一行代码都摆出来给你写。教程把内容切成四十三章第一章讲简易版十个步骤第二章从配置加载一路讲到 Spring Boot Starter 注解驱动。简易版先搭 web 服务器写本地服务注册器做序列化器写请求处理器最后消费者代理跑通测试十个步骤走下来 RPC 的基本骨架就有了。扩展版往里加全局配置、Mock 设计、SPI 机制、Etcd 注册中心、心跳续期、服务下线、消费端缓存、Etcd 监听、ZooKeeper 实现、自定义协议、粘包半包处理、装饰者模式、一致性 Hash 负载均衡、Guava Retrying 重试、容错策略。代码分了几个模块。yu-rpc-core 放核心代码yu-rpc-easy 是给新手的入门版本example-common 是示例公用模块example-consumer 和 example-provider 是裸跑消费者和生产者的样例后面带 springboot 后缀的是 Spring Boot 集成版本yu-rpc-spring-boot-starter 单独抽出来做注解驱动扔进业务项目就能用。3、 设计模式怎么落跟着扩展版走一遍单例、工厂、代理、装饰者这些模式全落在序列化器切换、注册中心切换、负载均衡器切换、重试策略切换、容错策略切换这五个点上。每加一种新实现就套一次 SPI 加工厂模式这种结构上的复用比单纯背设计模式记得牢。反射和注解驱动那块也讲得细。注解打在 service 接口上框架扫描后生成代理调用方像调本地方法一样调远程接口背后跑的是消费者代理那一整套。Spring Boot Starter 把这件事封装成了引入即用yu-rpc-spring-boot-starter 这个模块单独抽出来业务方引个依赖就完事。4、 适合哪些人简历上想加一个能讲清楚架构来龙去背的 Java 项目的人。跟着 Dubbo 套壳写完问不出细节的建议来过一遍这种从 0 拼装的过程。准备面 Java 后端岗位想搞懂 RPC 网络层、序列化、注册中心、负载均衡、容错之间怎么串起来的人。愿意花十几个小时把一个完整项目的代码敲完一遍的初学者。基础版几个小时就能跑通扩展版内容多需要跟着教程一章一章做。项目源码在 GitHub 公开放着教程第一章节免费看导学视频也公开想试水的可以先看第一章再决定要不要往里扎。第一章节免费看导学视频也公开想试水的可以先看第一章再决定要不要往里扎。