极客时间专栏《RPC实战与核心原理》读后笔记

RPC 相关的学习也有了一段时间,算是有了一个初步的认识,回过头来读 极客时间的专栏 感觉思路清晰了不少,顺利了许多,再回头看 rpcx 的源码也没有那么费劲了。我把我在这个专栏中学到的一些内容记录下来,共同学习。

本文不再解释 RPC 相关基础概念,有需要可在上文链接或者往期文章中学习。

以下的二级标题均对应专栏的课程大纲,同样分单元总结。

image-20210515133206463

开篇词

开篇词介绍了 RPC 的使用场景,重要意义,作为引文。

RPC 即远程过程调用,目的是使调用另一台机器上的程序就像调用本地程序一样简单。总是和 “微服务”,SOA 联系,其实理论上来说,任何牵扯到网络通信的系统都可能需要使用 RPC。比如分布式各个组件间或与应用间的通信,比如 etcd 作为统一的配置服务,客户端就是通过 gRPC 框架与服务端进行通信的。

RPC 是解决分布式系统通信问题的一大利器。 RPC 的通信原理十分简单,可是想完美驾驭却不那么容易,这个过程除了调用过程之外,还主要包括:通信节点查找,连接的建立与状态管理,数据传输的编解码,序列化与反序列化等等,每一项都十分复杂。

而完整的 RPC 框架却对上述过程进行了封装,使得网络通信逻辑的开发变得十分简单,效率也会更高。

最初的我学习 RPC 也是由浅入深,从 “字面意思” 出发,即如何调用远程主机上的某个函数,实现了编解码,序列化等等一整套调用流程,成功执行了远程主机的程序,当然了,这还是点对点的。

后来我发现这些仅仅是基础,冰山下的还包括一系列服务治理功能:连接管理,健康检测,负载均衡,优雅启停机,异常重试,业务分组以及熔断限流等等。十分复杂又充满了挑战性。



RPC

37 Words

2021-05-14 21:45 +0000