Go 框架设计与实现(一)| 青训营笔记

97 阅读3分钟

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

一、重点内容:

1.1 知识要点有哪些?

  • RPC框架概述
  • RPC框架分层设计
  • RPC关键指标

二、详细知识点介绍:

2.1 RPC框架概述

RPC框架指的是远程过程调用(RPC)框架。这是一种在网络上实现分布式系统之间的传输和交互的技术。RPC框架可以用来实现一个客户端发起调用至服务器上的远程函数或服务,从而允许不同的组件之间的远程通信。常见的RPC框架有Apache Thrift、gRPC(Google RPC)和Apache Avro。 其的优点包括:

  • 可以使跨网络设备之间的交互变得更加简单;
  • 可以使网络请求速度显著增加;
  • 可以使一套代码可在多个环境中重用;
  • 可以提高程序的可维护性和可扩展性;
  • 可以促进代码的再利用。

2.2 RPC框架分层设计

RPC框架分层设计采用了基于TCP/IP协议栈的分布式多层网络体系结构,其中七层模型包含硬件层、数据链路层、网络层——传输层、会话层、表示层、应用层和RPC框架层。RPC框架层是RPC技术的核心,它同时集成了客户端和服务器的运行模式,并支持客户端、服务器端的多种编程接口,包括socket、HTTP等。 RPC框架层支持客户端和服务器之间的远程过程调用,因此在每个RPC框架层内都包含了一套完整的通信协议、消息传输和解析等,以实现远程过程调用。

  • 编码层: RPC框架编码层主要是负责将客户端发出的请求数据流和服务器返回的响应数据流进行编码,以使其符合特定的协议结构。常见的编码方式有XML、JSON、文本等,以便能够在RPC客户端和服务器之间传输数据,方便进行远程过程调用。此外,RPC框架还应该提供一套完整的编码和解码工具,用于在客户端和服务器之间进行数据格式转换,以便实现高效内存分配和编码容量控制。
  • 传输协议层: RPC框架的传输协议层主要包括TCP/IP、HTTP、SMTP等协议。它们用于处理低层网络数据通信,以及在不同系统之间进行数据传输。此外,RPC框架还可以使用SSL/TLS等加密协议来保证数据传输的安全性。
  • 网络通信层: RPC框架的网络通信层主要负责两个计算机之间的远程过程调用(RPC),它提供了一个抽象的网络层来处理请求发送、响应接收和错误处理。它假定一个可靠的双方通信系统可以提供两个计算机之间的可靠数据传输。RPC框架的网络通信层也提供了一种良好的资源管理机制,通过使用流程调度和消息传递来使用更少的网络带宽,从而更快地处理工作量。

2.3 RPC关键指标

  • 稳定性
  • 易用性
  • 扩展性
  • 观测性
  • 高性能

三、引用参考

青训营后端学习资料五

后端入门 - Go 框架设计与实现