mrpc called "msgpack rpc" or "my rpc" 此项目为我边学习边写的项目,虽然可用,但是有些地方实现不够优雅。随着学习了更多的知识,发现有些地方可以实现的更好,但是因为精力等原因,改不动。 大家完全可以按照我下面给出的资料,自己实现一个更优雅的RPC项目 docs Go高质量编码规范 设计 网络IO模型 消息协议设计 连接池设计, 多路复用连接池 日志库设计: docs 限流: docs 熔断: docs 负载均衡: docs 一个TCP连接被多个请求复用以减少开销,多个请求同时发往一个TCP连接: 异步处理 重试 使用 错误码设计: docs 踩坑记录 其它 字节序 优雅重启 benckmark 如何做好压测 压测代码仓库 todo errors 配置文件格式 服务注册与发现 重构 性能优化 超时控制完善 学习资料 RPC 框架 net/rpc: go 官方的rpc框架,代码量很少 go-kratos, go-zero: 不是rpc框架,是微服务框架,在rpc基础上实现了很多服务治理功能 brpc: 虽然是c++的写的,但是不用看源码,看文档已经能学到足够多的东西。