这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
前言
写这篇文章,我犹豫了很久,因为只是大致看了《RPC 框架分层设计》和《RPC 关键指标分析与企业实践》两遍,对内容的掌握还差火候;不过学习中重要的是分享,于是写下了这篇文章。
课程内容介绍
今天我学的课程是字节内部课《它是后端入门 - Go 框架设计与实现》的第一二节,第一节讲解了RPC的基本概念与分层设计,第二节讲解了RPC框架的五大关键指标及字节内部对RPC框架的实现情况。
心得
从本地调用到远程调用
单机的性能是有限,限于内存大小、cpu性能、磁盘大小,我们总希望在一台机器上获得超出单机性能的服务。
怎么实现这样的效果呢?我们可以将一个在本地运行的服务放到另一台机器上,然后将该服务所需的输入和输出通过网络进行传输。
RPC是什么
RPC是Remote Procedure Calls的简称,就是远程函数调用。
要明白RPC是是什么还需要了解以下名词的意思:
- IDL
IDL是Interface description language的缩写,指接口描述语言,是CORBA规范的一部分,是跨平台开发的基础。
- 生成代码
通过编译器工具把IDL文件转换成语言对应的静态库。
- 编解码
编码是信息从一种形式或格式转换为另一种形式的过程。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机、电视、遥控和通讯等方面广泛使用。
解码,是编码的逆过程。
- 通信协议
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。
通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
- 网络传输
网络传输是指用一系列的线路(光纤,双绞线等)经过电路的调整变化依据网络传输协议来进行通信的过程。其中网络传输需要介质,也就是网络中发送方与接收方之间的物理通路,它对网络的数据通信具有一定的影响。常用的传输介质有:双绞线、同轴电缆、光纤、无线传输媒介。网络协议即网络中(包括互联网)传递、管理信息的一些规范。
如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。网络协议通常被分为几个层次,通信双方只有在共同的层次间才能相互联系。
未完待续