# KamaRPC:Go语言从0实现RPC框架
不少录友、做项目,已经习惯了调用各种框架:
- 调 gRPC
- 调 Dubbo
- 调各种 SDK
看起来像是在“调用一个函数”,参数一传,结果一拿,好像一切都很自然。
但面试官更喜欢问的,这背后到底发生了什么?
比如:
- 请求是怎么从客户端发到服务端的?
- 为什么 TCP 会有粘包、拆包问题?
- 一个连接怎么同时处理多个请求?
- 服务节点是怎么被发现的?
- 多个节点之间的流量是怎么分配的?
之前知识星球里已经有了 Java版本的RPC,C++版本的RPC,这次终于补起了Go版本RPC项目(KamaRPC)。

KamaRPC框架项目基于 TCP 长连接实现高性能网络通信,设计自定义二进制协议(magic | headerLen | bodyLen | requestId 等字段)。
并通过长度字段分帧机制解决粘包与拆包问题,实现安全可靠的消息传输模型。
通过这个项目的学习,我们将深入理解半包处理、buffer 管理与循环读写机制,而非停留在简单 socket 使用层面。
在编解码层面,框架支持 JSON 与 Protobuf,并抽象出可插拔 codec 接口,实现编码方式解耦与扩展能力。
同时支持 gzip 压缩策略,体现网络传输优化与工程实践能力。
在调用模型方面,客户端支持同步与异步调用机制,采用 Future 模型管理请求结果。
并通过 requestId 实现多路复用能力,使单连接可承载高并发请求。
服务端支持服务注册与反射调用(后续可扩展为代码生成 stub),实现“本地方法远程化”的完整调用链路
项目客户端实现连接复用与请求并发控制,使系统在高并发场景下保持稳定。
关于简历和项目面试题都准备好。

如果时间紧张,可以把直接写简历上,然后背一背面试题,基本差不多。当然建议大家有时间还是好好做一做。
# 项目专栏目录
专栏目录

卡码RPC这个专栏,刻意避开了这两个问题。它不是把源码丢给你,而是按照“先认知 → 再结构 → 后实现”的顺序,带你一步步建立完整能力体系。

1、第一层:先建立认知,而不是直接写代码
开篇部分包含:
- 项目背景与基础要求
- RPC理论
- 环境准备
这一阶段的目的,是先让你搞清楚:RPC到底解决什么问题,为什么需要服务发现、负载均衡这些机制。
不是一上来就看代码,而是先知道自己在学什么。
2、第二层:先建立全局视角
接下来是:
- 项目代码结构
- 核心结构体设计
这一部分会帮你建立“全局地图”:
- 各个模块是干什么的
- 一次RPC调用会经过哪些层
- 入口在哪里,调用链怎么走
很多人看不懂项目,本质是缺少这一步。
3、第三层:深入核心能力(真正拉开差距的部分)
核心章节集中在:
- 调用流程与架构图
- 服务发现、负载均衡
- 限流、熔断
- 连接池与连接复用(重点)
这些内容,才是面试真正会深入追问的部分:
- 请求如何发送与返回
- 多节点如何分配流量
- 高并发下如何控制连接
- 系统异常时如何保护自身
这也是大多数项目最缺的深度。
4、第四层:面向求职的完整闭环
最后部分包括:
- 性能测试
- 简历写法
- 面试题总结
不仅教你做项目,还教你:
- 怎么验证项目质量
- 怎么写进简历
- 面试官会怎么问
从项目源码到答疑,一条龙服务,不用担心学不会,有什么问题都可以在专属微信群提问:(知识星球里每个项目都有专属答疑群)

# 获取本专栏
本文档仅为星球内部专享,大家可以加入知识星球里获取,在星球置顶一:
这里给出10元代金券,领代金券加入,代码随想录知识星球支持三天内(72h)可以全额退款。

加入知识星球后,记得加如下微信,发动付款截图,拉你到星球交流群:

# 项目专栏细节
本项目需要的基础

RPC理论

环境准备

细节讲解

项目各个模块调用流程图

时序图

性能测试

简历写法与相关面试题

# 项目亮点

从 0 实现 RPC 核心链路 不是调用现成框架,而是从通信、调用到服务治理完整实现一套 RPC 框架,真正理解底层原理。
自定义协议 + TCP 长连接 设计二进制协议(magic / headerLen / bodyLen / requestId),通过长度分帧机制解决粘包、拆包、半包问题。
多路复用 + 高并发处理 基于 requestId 实现请求响应映射,单连接支持多请求并发处理,提高系统吞吐能力。
Future 模型支持异步调用 支持同步与异步调用,利用 Future 管理请求结果,提升并发性能与调用灵活性。
可插拔编解码设计 支持 JSON / Protobuf,并抽象 codec 接口,同时支持 gzip 压缩,具备良好的扩展能力。
完整服务治理体系 集成服务注册发现(etcd)、负载均衡、熔断、限流等能力,覆盖分布式系统核心场景。
连接池与连接复用机制 复用 TCP 连接并控制并发请求,提升高并发场景下的稳定性与资源利用率。
工程化结构清晰 模块分层明确(client / server / transport / protocol 等),对标真实工程项目设计。
面向面试设计 覆盖架构设计、调用流程、性能优化、简历写法与面试题,直接服务求职场景。
# 学完本项目可以掌握什么?

深入理解 RPC 框架核心原理 从通信协议到调用流程,真正掌握一套 RPC 框架是如何设计与实现的。
掌握 TCP 长连接与多路复用机制 理解高性能通信背后的关键能力,包括长连接、请求复用与并发调度。
具备分布式系统基础能力 掌握服务注册与发现机制,理解节点变化、服务动态感知等核心问题。
理解负载均衡与流量调度设计 能够根据不同场景选择合适的负载均衡策略,并理解其背后的设计思想。
具备系统稳定性设计能力 能够通过熔断、限流等机制,构建在高并发和异常场景下依然稳定的系统。
具备基础架构设计能力 不再局限于业务开发,能够设计并实现基础网络框架与微服务基础设施。
# 加入知识星球获取本项目
这里给出10元代金券,领代金券加入,代码随想录知识星球支持三天内(72h)可以全额退款。

加入知识星球后,记得加如下微信,发动付款截图,拉你到星球交流群:

加入知识星球 (opens new window)四大权益
1、高质量项目合集(C++ / Java / Go / Python / AI)
可以获得星球里 20+ 套项目专栏资料,不仅有详细讲解,而且都配套专属答疑服务。
全网十分稀缺的 C++ 大模型应用项目(AI应用服务平台),Go 大模型应用项目(GopherAI),Java 大模型应用项目(JChatMind)。

2、精品八股PDF
速记八股帮助众多录友们,短时间内快速上岸:

3、独家资料 & 学习氛围
大厂面经、薪资报告、秋招投递总结表

学习路线清晰,方向明确

星球里全是志同道合的伙伴,学习氛围 🔥🔥🔥

4、卡哥 1v1 提问 & 简历修改
直接向我提问,面试疑惑、学习路线、职业规划一对一解答

加入知识星球 (opens new window)后如果不满意,三天内(72h)可全额退款!
评论
验证登录状态...