设为首页 | 加入收藏
您当前位置:主页 > 网络编程 > 离不开的微服务逃不掉的 RPC

离不开的微服务逃不掉的 RPC

时间:2021-05-12 12:09 来源:未知   点击:

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

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

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

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

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

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

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

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

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

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

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

  基础篇,重点讲解 RPC 的基础知识,包括 RPC 的基本原理和它的基本功能模块。夯实基础之后,小锋哥会通过剖析一款 RPC 框架,将整个基础知识串联起来。

  进阶篇,何小锋列举了很多他自己运行 RPC 框架中遇到的实际问题,以及针对这些问题的解决方案。

  高级篇,带你活学活用,关注系统性能提升、线上问题排查等,用多个具体场景,讲解 RPC 的应用,比如异步 RPC、时钟轮在 RPC 中的应用、流量回放等等。

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