vlambda博客
学习文章列表

Java后端实战项目推荐-手写RPC框架

RPC框架的搭建的学习视频可以在慕课网,搜索RPC,即可看到,“自己动手实现RPC框架”,当然,这个课程全程只有两个多小时,仅仅是一个带你入门的作用,更多的学习,可以通过阅读Dubbo等RPC框架的源码来进行。

Java后端实战项目推荐-手写RPC框架

1. 项目介绍

首先了解什么是RPC框架,RPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。下面是常见的集中RPC框架的对比。

Java后端实战项目推荐-手写RPC框架

该项目将带大家从原理及实现上理解RPC框架。

首先讲解RPC是什么,我们为什么需要RPC;

进一步分析其核心原理,梳理其中会涉及到的技术点,为我们后续造轮子做准备;

然后从工程建立模块划分开始,接着定义协议、实现序列化、实现网络模块、实现server模块、实现client模块,开发完成之后利用自己的RPC开发一个具备分布式特效的功能。

当然,RPC的功能远不止此,我们可以通过阅读更多的开源代码,来为自己RPC框架增加功能,这也是一件充满乐趣的事情。

2. 从此项目中我们可以学到什么

Java后端实战项目推荐-手写RPC框架

上图主要说明了RPC框架的五个模块,包括五个主要模块,包括协议模块、序列化模块、网络模块、server模块以及Client模块,同时说明了每个模块中的类及其调用关系。

课程主要实现了Server和Client的远程调用,包括动态代理、序列化以及网络传输。

但是在本课程中没有实现注册中心模块,各位可以参考相关RPC框架(个人参考Dubbo)来进行完善。

个人主要额外实现的部分:

  • 基于redis实现的注册中心
  • 更多负载均衡算法的实现

2.1 后端技术

  • Lombok
  • 负载均衡策略
  • Fastjson序列化
  • JDK动态代理
  • HTTP网络编程
  • Maven
  • Redis实现的注册中心(可选)

2.2 其他技术

  • Git

3. 简历中如何写?

项目名称:基于Java语言实现的RPC框架

项目描述:

  • 实现轻量级RPC框架,使得客户端可以通过网络从远程服务端程序上请求服务
  • 注册中心部分使用Redis实现注册、订阅功能(可选)
  • 在客户端实现了基于一致性哈希算法的负载均衡(可选)
  • 动态代理部分使用JDK动态代理
  • 网络传输部分使用Http协议进行传输

4. 总结

该项目是一个基于全长两个多小时的视频的小项目,在完成整个课程之后,我们即可对RPC框架的基本原理b、功能和实现方式有着一定的了解。

但是,这是一个值得你在完成之后继续花心思去琢磨去研究的项目。

通过研究Dubbo等常见RPC框架,你可以为你的RPC项目添加模块,比如注册中心,也可以为你现有的模块增加更多的实现方法,比如各类负载均衡算法的实现,基于Netty的通信等等,如果你可以将这些融会贯通,那么对你的成长以及面试都会有非常大的帮助。

往期实战项目推荐