RPC 框架,底层到底是什么原理?

码农沉思录

共 1894字,需浏览 4分钟

 · 2021-06-18


最近一朋友和我吐槽,说看到几个不错的简历,但一面试发现水分太大,让我想起去年面的一个高级开发,简历上写着“熟练掌握 RPC 框架”,我就试探着问了几个问题“大概说下 RPC 框架的核心原理”“描述下序列化部分的逻辑”,聊了半天,发现他都是在告诉我怎么用,或如何用好这些框架。


紧接着,我追问“如果没有 RPC 框架,你要如何调用另一台服务器上的接口呢”,这问题可深可浅,特别考验基本功,能看出候选人是否深入思考过 RPC 框架的原理,结果答案依然让我失望。

其实,只要你在体量稍微大一点的公司待过,就一定接触过 RPC。涉及 RPC 框架开发的岗位,大都在基础架构部,而且薪水不低——毕竟,如果你能搞懂 RPC 框架的设计原理,或能自己造一个轮子出来,那基本功一定不差;如果还有机会参与公司的 RPC 治理工作,解决各种线上问题,你的能力已经可以和高级架构师相当了。

之所以这么说,是因为 RPC 涉及序列化、压缩算法、协议、动态代理、服务注册、加密、网络编程、连接管理、健康检测、负载均衡、优雅启停机、异常重试、业务分组以及熔断限流等方方面面的知识。如果你能把这些问题全部搞定,能力可见一斑。

说到这,想起了那个著名的「冰山模型」。水面之上的部分,看起来很简单,但那都是别人包装之后的东西,水面之下的才是技术成长的关键。


要真正掌握这些知识,离不开日常工作的实践积累。就说我吧,也认识一个这方面的牛人,叫何小锋,他是京东科技云原生平台负责人。在京东任职十年了,参与过大大小小近 20 次大促活动备战,见证了京东的技术演进过程,也攻克过很多技术难题,包括自主研发微服务框架、高性能消息中间件、智能监控以及容器平台等等。

去年,订阅了他的专栏《RPC 实战与核心原理》跟着学下来,收获超出预期。

整个专栏深入浅出,实战性很强。在专栏中,他精选出 20 个 RPC 高频场景化问题,用图文、原理、实践相结合的方式,带你掌握 RPC 的核心原理和架构设计要点,以及 RPC 框架的系统应用,包括其治理功能及集群管理功能等等,最后带你手把手设计一个灵活的 RPC 框架,进而了解系统性能的提升,以及分布式环境下的问题定位及排查。

新人首单 ¥59.9  ,仅限「前 50 人」

原价 ¥129,相当于半价

 
最近公司做框架迁移,因为修改老的框架成本高,稳定性存疑,所以直接迁移新框架了。中间遇到了不少问题,所以趁着五一放假,我把专栏从头到尾撸了一遍,重新理解了 RPC 框架各个组件的设计原理,这不,假期回来就用上了,还真是没白看。

另外,专栏也给了我一些新的启发和想法。比如,之前协助运维搞部署流程,其中一个步骤是健康检测,之前我都是直接检查应用状态,现在看来,应该加上服务发现到应用的通信状态了。

总得来说,学完这个专栏,不仅对 RPC 的原理有了更加全面的了解,对项目也多了不少优化的灵感。得空准备以项目为中心,重新过一遍前面的文章。

别的不说,就 RPC 这块儿,我就没见过比这个讲得更好的资料,不仅限于一二三的步骤,还有方方面面涉及的其他知识点,可谓良心。

光我说不算,截了一些留言供你参考:


根据专栏的整体脉络,我总结了一下每部分的主要内容:

基础篇,重点讲解 RPC 的基础知识,包括 RPC 的基本原理和它的基本功能模块。夯实基础之后,小锋哥会通过剖析一款 RPC 框架,将整个基础知识串联起来。
 
进阶篇,何小锋列举了很多他自己运行 RPC 框架中遇到的实际问题,以及针对这些问题的解决方案。
 
高级篇,带你活学活用,关注系统性能提升、线上问题排查等,用多个具体场景,讲解 RPC 的应用,比如异步 RPC、时钟轮在 RPC 中的应用、流量回放等等。


我一直认为,学习技术最好的过程,是从接纳和记忆知识开始的,弄懂核心原理之后,再结合实践不断深入思考,最终总结和沉淀出自己的经验。

现在,我们每天的时间和注意力都被切割得很碎,时间要比金钱更宝贵,找对方法跟对人,才能事半功倍。

新人首单 ¥59.9  ,仅限「前 50 人」
原价 ¥129,相当于半价


温馨提示
订阅后可通过「极客时间 App」或「极客时间小程序」我的-已购,学习已订阅的专栏。

👇点击「阅读原文」,扫码免费试读。
新人首单 ¥59.9  ,相当于半价哦
浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报