初探RPC框架 | 青训营笔记

130 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第9天

前言

PRC通常与本地方法调用对比,是一种通过网络的远程调用。是微服务架构的基石,具有非常大的意义。下面以初学者的角度来对PRC进行解读。

什么是RPC

RPC是远程过程调用的缩写,它是一种通过网络从远程计算机程序上请求服务的通信机制。它允许客户端连接到远程服务器,请求服务并获取响应。RPC 允许网络应用程序可以在不同的系统之间实现通信,允许系统之间相互调用。

RPC的分层设计

  • 编解码层
    编解码层客户端和服务端依赖同一份IDL文件可以生成不同语言的CodeGen。编码格式可以分为语言特定的格式,文本格式以及二进制编码。这一层主要用于对客户端和服务器之间传输的数据进行编码、解码,以便相互之间能够进行正确的数据传输。
  • 协议层
    此层主要定义了客户端和服务器之间必须遵守的规则,包括传输协议、数据格式等。
  • 网络通信层
    该层使用TCP/IP协议实现客户端和服务器之间的数据传输,并支持单台机器上同时具有多个客户端对服务器进行数据传输。

RPC的优缺点

  • 优点:
  1. 它是简单易用的,支持远程过程调用;
  2. 支持多种语言,可以使用不同语言实现客户端和服务器;
  3. 它具有高效性,它使客户端能够利用服务器上的资源;
  4. 它提供了良好的安全性,采用加密的方式安全通信;
  5. 由于采用了统一的接口,可以方便管理数据和开发系统。
  • 缺点:
  1. RPC 对比 HTTP 具有更多的开销;
  2. RPC 不支持 web 服务和浏览器;
  3. 它对网络的状态敏感,可能会受到网络问题的影响而发生网络拥塞;
  4. 由于 RPC 调用的开销比较大,每次调用都需要消耗大量的系统资源;
  5. RPC 不能很好的处理异步及并发的请求。

总结与反思

通过老师上课所讲的内容以及课后自己查阅的资料,对PRC有了初步的了解。通过一系列的学习,对整个微服务的相关技术概念都有了一定的了解。有空可以尝试着写一个微服务项目,将这些概念都加以应用,融会贯通。行动起来吧,加油!