摸清 Go RPC 原理的第一步!
Posted 脑子进煎鱼了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了摸清 Go RPC 原理的第一步!相关的知识,希望对你有一定的参考价值。
最近一朋友和我吐槽,说看到几个不错的简历,但一面试发现水分太大,让我想起去年面的一个高级开发,简历上写着“熟练掌握 RPC 框架”,我就试探着问了几个问题“大概说下 RPC 框架的核心原理”“描述下序列化部分的逻辑”,聊了半天,发现他都是在告诉我怎么用,或如何用好这些框架。
紧接着,我追问“如果没有 RPC 框架,你要如何调用另一台服务器上的接口呢”,这问题可深可浅,特别考验基本功,能看出候选人是否深入思考过 RPC 框架的原理,结果答案依然让我失望。
其实,只要你在体量稍微大一点的公司待过,就一定接触过 RPC。涉及 RPC 框架开发的岗位,大都在基础架构部,而且薪水不低——毕竟,如果你能搞懂 RPC 框架的设计原理,或能自己造一个轮子出来,那基本功一定不差;如果还有机会参与公司的 RPC 治理工作,解决各种线上问题,你的能力已经可以和高级架构师相当了。
之所以这么说,是因为 RPC 涉及序列化、压缩算法、协议、动态代理、服务注册、加密、网络编程、连接管理、健康检测、负载均衡、优雅启停机、异常重试、业务分组以及熔断限流等方方面面的知识。如果你能把这些问题全部搞定,能力可见一斑。
说到这,想起了那个著名的「冰山模型」。水面之上的部分,看起来很简单,但那都是别人包装之后的东西,水面之下的才是技术成长的关键。
要真正掌握这些知识,离不开日常工作的实践积累。就说我吧,也认识一个这方面的牛人,叫
何小锋
,他是京东科技云原生平台负责人。在京东任职十年了,参与过大大小小近 20 次大促活动备战,见证了京东的技术演进过程,也攻克过很多技术难题,包括自主研发微服务框架、高性能消息中间件、智能监控以及容器平台等等。
去年,订阅了他的专栏
《RPC 实战与核心原理》
跟着学下来,收获超出预期。
整个专栏深入浅出,实战性很强。在专栏中,他精选出 20 个 RPC 高频场景化问题,用图文、原理、实践相结合的方式,带你掌握 RPC 的核心原理和架构设计要点,以及 RPC 框架的系统应用,包括其治理功能及集群管理功能等等,最后带你手把手设计一个灵活的 RPC 框架,进而了解系统性能的提升,以及分布式环境下的问题定位及排查。
秒杀+
口令
「RPCRPCRPC」
立省 ¥60
最近公司做框架迁移,因为修改老的框架成本高,稳定性存疑,所以直接迁移新框架了。中间遇到了不少问题,所以趁着五一放假,我把专栏从头到尾撸了一遍,重新理解了 RPC 框架各个组件的设计原理,这不,假期回来就用上了,还真是没白看。
另外,专栏也给了我一些新的启发和想法。比如,之前协助运维搞部署流程,其中一个步骤是健康检测,之前我都是直接检查应用状态,现在看来,应该加上服务发现到应用的通信状态了。
总得来说,学完这个专栏,不仅对 RPC 的原理有了更加全面的了解,对项目也多了不少优化的灵感。得空准备以项目为中心,重新过一遍前面的文章。
别的不说,就 RPC 这块儿,我就没见过比这个讲得更好的资料,不仅限于一二三的步骤,还有方方面面涉及的其他知识点,可谓良心。
根据专栏的整体脉络,我总结了一下每部分的主要内容:
基础篇
,重点讲解 RPC 的基础知识,包括 RPC 的基本原理和它的基本功能模块。夯实基础之后,小锋哥会通过剖析一款 RPC 框架,将整个基础知识串联起来。
进阶篇
,何小锋列举了很多他自己运行 RPC 框架中遇到的实际问题,以及针对这些问题的解决方案。
高级篇
,带你活学活用,关注系统性能提升、线上问题排查等,用多个具体场景,讲解 RPC 的应用,比如异步 RPC、时钟轮在 RPC 中的应用、流量回放等等。
我一直认为,学习技术最好的过程,是从接纳和记忆知识开始的,弄懂核心原理之后,再结合实践不断深入思考,最终总结和沉淀出自己的经验。
现在,我们每天的时间和注意力都被切割得很碎,时间要比金钱更宝贵,找对方法跟对人,才能事半功倍。
以上是关于摸清 Go RPC 原理的第一步!的主要内容,如果未能解决你的问题,请参考以下文章
Spark原理图解:Rpc通信
WebRTC技术专题大势所趋,迈向认识 WebRTC 的第一步
我在 Python 中的第一步
迈出我的第一步
C++道路上的第一步
使用 Apache Parquet 的第一步输入错误