RPC框架介绍
RPC框架是微服务的通信工具,其涉及到网络传输、服务注册、序列化、代理模式等等知识的学习与使用,是微服务的入门框架。
现有的比较知名的RPC框架有阿里巴巴开源的Dubbo,谷歌的开源RPC框架gRPC,甚至SpringCloud中所使用的OpenFeign。既然具有如此多的RPC框架,那么其原理与使用则代表着我们需要认真学习。
项目背景
基于兴趣与找工作的目的,我在22年春招期间花了大约一周的时间开发了一个RPC框架,当时由于比较着急,所以并没有去了解RPC的痛点问题、背景等,只是依据Dubbo源码与网上的教程开发了一个简单的RPC。
在后续的复盘中,我发现现有网上的RPC从架构上就存在一定的问题,其并没有达到一个合格的RPC框架的使用标准,这也意味着我当时的RPC存在大量的问题。
在经历了大约一年的学习后,我决定重新按照我自己的思路重新编写一个RPC框架,再锻炼自己的技术与架构能力的同时,帮助同学们从0到1完成一个RPC框架。
这个应该算是我自己的2.0版本,本次取名为Bg-RPC(不鸽RPC),因为我比较的懒,本次取此RPC的名字也是激励自己一定要认真保质保量的完成此开源项目。
虽然说现在网上琳琅满目的小型RPC教程数不胜数,也有面试官跟我交流的时候说RPC已经是一个很成熟的产品了,并且确实RPC领域已经特别特别卷了,很难有革命性的突破,但是我认为对于自己来说还可以有以下的加强与探索点:
- 完整且合理的基准测试与压力测试
- 支持多种注册中心并且最好是在未来嵌入一个注册中心
- 支持多种序列化方式并且最好在未来嵌入一个序列化方式
- 对Netty直接内存管理的自动GC的实现
- 自研一个网络IO框架
以上就是我本次RPC项目后期会重点关注的问题,对于我来说我认为以上都是比较困难的实现,而我希望能够在锻炼自己能力(秀技)的同时,去用自己微不足道的能力帮助入门者铺下一条学习中间件的道路。
开源地址以及教程内容
开源地址:GitHub
教程内容:
- RPC之运行流程与架构分析
- RPC之服务发现与注册
- RPC之序列化方式
- RPC之动态代理
- RPC之网络传输
- RPC之SPI机制
- RPC之负载均衡算法
- RPC之心跳检验
- 以及后续进阶内容
尾注
如果大家有其他的想要了解的内容可以通过留言或者GitHub上的联系方式联系我,我会尽量满足大家的需求,我保证这次绝对不鸽!