本文原载于个人博客,地址:https://blog.guoziyang.top/archives/60/,项目地址:https://github.com/CN-GuoZiyang/My-RPC-Frameworkgit
差很少五月份左右,我开始准备秋招。除了天天刷题或者复习,就得开始准备准备项目了。由于我主要是Java后端,项目是很好找的,主要就是各类管理系统和商城项目。于此同时,我也在思考,怎么能够准备一个更加出彩的、不同凡响的项目,能够直接引导你与面试官的聊天方向?直到,我看到了Guide哥的RPC框架,眼前一亮。github
众所周知,用框架和写框架所须要的对框架的熟悉程度显然不在一个级别。若是你能亲手写一个RPC框架,那么几乎全部的RPC相关的问题就很难问倒你了(除非是具体到某个框架)。因而,我开始研究这个项目。web
苦于Guide哥没有写教程,我只能按照commits历史,一点一点揣测每一点变化的意义,而且临摹下来(照葫芦画瓢),固然,在临摹过程当中,我仍是有不少本身的想法的,例如自定义协议、以及序列化与负载均衡算法可配置、注解方式服务发现等。感兴趣的同窗能够照着这个教程自行完成一个。面试
介绍其实没有什么,主要仍是Readme里那一套,详见上一章Readme。算法
这个教程和Guide哥的commits同样,是按部就班的,从一个最简单的BIO + Java序列化开始,逐步完善成Netty + 多序列化方式的比较完整的框架,而且配置了Nacos服务发现(没用Zookeeper的缘由仅仅是由于我不会)。后端
在每一章节的开头,我都会放出该章节对应的commit地址,方便查看代码。api
整个项目位于https://github.com/CN-GuoZiyang/My-RPC-Framework负载均衡