作者:禅与计算机程序设计艺术
1.简介
“远程过程调用”(Remote Procedure Call)或称之为RPC,它是一种通过网络通信在不同的机器上执行代码的技术。其特点是可以让两个不直接相连的计算机之间进行数据交换。当客户端需要访问服务端提供的某个函数或者变量时,客户端可以通过向服务端发送请求消息并等待响应消息的方式调用远程服务。这种方式非常便于分布式系统的开发和部署,但同时也引入了新的复杂性——远程调用带来的性能开销。因此,如何提高远程调用的效率、可靠性及容错性成为RPC研究的重要方向。
2.基本概念术语说明
服务端
1. 服务端(Server): 是指远程过程调用服务提供方,也就是一台服务器或一组服务器,用于提供远程过程调用的服务。
2. 消息格式: 服务端向客户端返回的数据或者结果,都以消息形式在网络上传输。每一个消息都由消息头和消息体两部分组成,其中消息头记录了消息的类型、长度、序列化协议等信息,而消息体则是要传输的实际数据。消息格式定义了通讯双方约定的交流规则。
3. 网络协议: 服务端与客户端建立连接后,就需要按照某种网络协议对消息进行收发。目前比较常用的有TCP/IP协议、HTTP协议等。
4. 处理线程池: 当客户端向服务端发起远程调用时,服务