rpc 是基于 netty 实现的 java rpc 框架,类似于 dubbo。
主要用于个人学习,由渐入深,理解 rpc 的底层实现原理。
工作至今,接触 rpc 框架已经有很长时间。
但是对于其原理一直只是知道个大概,从来没有深入学习过。
以前一直想写,但由于各种原因被耽搁。
Java 并发实战学习
TCP/IP 协议学习笔记
Netty 权威指南学习
这些技术的准备阶段,花费了比较长的时间。
也建议想写 rpc 框架的有相关的知识储备。
其他 rpc 框架使用的经验此处不再赘述。
原来一直想写 rpc,却不行动的原因就是想的太多,做的太少。
想一下把全部写完,结果就是啥都没写。
所以本次的开发,每个代码分支做的事情实际很少,只做一个功能点。
陆陆续续经过近一个月的完善,对 rpc 框架有了自己的体会和进一步的认知。
代码实现功能,主要参考 Apache Dubbo
文档将使用 markdown 文本的形式,补充 code 层面没有的东西。
代码有详细的注释,便于阅读和后期维护。
目前测试代码算不上完善。后续将陆续补全。
rpc-common 公共代码
rpc-server 服务端
rpc-client 客户端
rpc-register 注册中心
rpc-test 测试模块
从零开始手写 dubbo rpc 框架-00-序章
从零开始手写 dubbo rpc 框架-01-服务端启动
从零开始手写 dubbo rpc 框架-02-客户端启动
从零开始手写 dubbo rpc 框架-03-客户端调用服务端
从零开始手写 dubbo rpc 框架-04-p2p客户端主动调用服务端
从零开始手写 dubbo rpc 框架-05-serial 序列化
从零开始手写 dubbo rpc 框架-06-通用客户端调用服务端
从零开始手写 dubbo rpc 框架-07-timeout客戶端超时检测
从零开始手写 dubbo rpc 框架-08-register注册中心
从零开始手写 dubbo rpc 框架-09-load balance 负载均衡
从零开始手写 dubbo rpc 框架-10-callType 调用方式
从零开始手写 dubbo rpc 框架-11-fail 失败策略
从零开始手写 dubbo rpc 框架-12-generic-泛化调用
从零开始手写 dubbo rpc 框架-13-gracefully-优雅关闭
从零开始手写 dubbo rpc 框架-14-interceptor-拦截器