大家好,我是代码界的小白,今天给大家分享一下Java后端的实战项目-手写RPC!公众号:代码界的小白,会更新互联网消息、动态、高频八股、实战项目等。 RPC框架的搭建的学习视频可以在慕课网,搜索RPC,即可看到,“自己动手实现RPC框架”,当然,这个课程全程只有两个多小时,仅仅是一个带你入门的作用,更多的学习,可以通过阅读dubbo等RPC框架的源码来进行。 1.项目介绍 首先了解什么是RPC框架,RPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。下面是常见的集中RPC框架的对比。 该项目将带大家从原理及实现上理解RPC框架。 首先讲解RPC是什么,我们为什么需要RPC; 进一步分析其核心原理,梳理其中会设计到的技术点,为我们后续造轮子做准备; 然后从工程建立模块划分开始,接着定义协议、实现序列化、实现网络模块、实现server模块、实现client模块,开发完成之后利用自己的RPC开发一个具备分布式特效的功能。 当然,RPC的功能远不止此,我们可以通过阅读更多的开源代码,来为自己RPC框架增加功能,这也是一件充满乐趣的事情。 2.从此项目中我们可以学到什么 上图主要说明了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的通信等等,如果你可以将这些融会贯通,那么对你的成长以及面试都会有非常大的帮助。 往期实战项目推荐 Java后端实战项目推荐-尚医通  Java后端实战项目推荐-黑马头条  Java后端实战项目推荐-锋迷商城  
点赞 50
评论 9
全部评论

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
码农索隆:有点耳熟,你们是我教过最差的一届
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务