手写RPC(一) 絮絮叨叨

前言

提到RPC(Remote Procedure Call)大家应该都不陌生,特别是像我一样做web开发的,可以说天天和rpc打交道。常见的rpc框架主要包括DubboSpringCloudThrift等。
既然有了那么多已经成熟的开源RPC框架,我为什么还要自己写呢,是已有的RPC框架不能满足我的业务需求?是因为我想写一款完美的RPC框架一战成名?NO! NO! 都不是,你给自己加戏太多了!我只是想以此来学习,督促自己学习,同时印证自己所学。

我的知识库

做开发也好几年了(本人一直是做java开发),从最开始的最基本语法到htmlspringjavaScriptredismysql,再到后来的springboot,再到zookeeper,学习了分布式系统的CAP理论,学习了分布式事务怎么处理,学习了应用怎么做可以抗住高并发。然后前几年大数据兴起,还去找课程学习了hadoop一套,买了一两台乞丐版云服务器,自己搭建hadoop集群,自己写MR任务,跑在自己搭建的集群,满满的成就感。然后学习了HIVE发现,原来我不用自己写MR任务,直接一条SQL搞定!接着机器学习兴起,python是机器学习的首选语言,然后找教程学了python语法,又听说机器学习需要数据基础,然后找了概率论统计学专为程序员设计的线性代数来学习。然后又看到微信公众号说 go语言为并发而生,阿里、腾讯等大厂现在大量招收有 golang语言工作经验的人,你们懂的,我尝试去学习了go语言,也跟着视频超了几个项目,也能正常运行。稍稍回首发现,自己好厉害,林林总总学了这么多东西!

学会了?

然而,你真的学会了吗?是的,真的学废了!
hadoop我记得它的基石hdfsnamenodedatanode的概念!
hive我知道它可以把一条sql转化为MR任务运行!
我记得老师多次提到过的大数据的计算的一个原则或者说理念计算向数据异动
关于python,我可以写一个hello world,写一个九九乘法表,装环境可能还需要百度!
关于golang,可以写hello world、可以写一个基于控制台的人机交互的猜大小的游戏!
然而,仅此而已!我的工作环境没有大数据的场景和需求,所以学完的东西很快就会忘记,因为没有使用场景。python也几乎没有使用场景。关于go,很多人说感觉golang的语法像在这里插入图片描述
,学完后真香!但我还一直处于第一个阶段!

学不动了?

除了上面的说的那些,做为一个java开发者,你难道忘了自己的本职工作,怎么提高接口的响应速度,缓存的知识要了解吧?引入了缓存,缓存数据一致性怎么保证?要优化查询速度,数据库索引的知识需要知道的吧,必要的时候还需要进行优化。要想保证代码的健壮和优雅,java编程最佳实践了解下?
在这里插入图片描述
但是你真的敢不学了么!
有时候突然会很迷茫,感觉自己懂了很多东西,仔细想想又感觉自己什么都不懂,更加迷茫了。但是总不能一直迷茫在这里插入图片描述

无论怎么样,生活总要继续!

愿看到这篇文章的你在生活中的漩涡里激流勇进,愿和我一样迷茫的你,静下心来一起努力。
来吧,趁着有时间,一起写个rpc框架,万一写出来了呢?
在这里插入图片描述
系列文章传送门如下:
手写RPC(二) 碎碎念
手写RPC(三) 基础结构搭建
手写RPC(四) 核心模块网络协议模块编写 ---- netty服务端
手写RPC(五) 核心模块网络协议模块编写 ---- 自定义协议
手写RPC(六) 核心模块网络协议模块编写 ---- 实现编解码器
手写RPC(七) 核心模块网络协议模块编写 ---- 实现客户端
手写RPC(八) provider、consumer 实现
手写RPC(九) 测试
手写RPC(十) 优化
关于 LengthFieldBasedFrameDecoder 不得不说的事

猜你喜欢

转载自blog.csdn.net/hxj413977035/article/details/121537837
今日推荐