RPC之Thrift框架基本介绍
RPC(Remote Procedure Call,远程过程调用)是一个计算机通信协议,此协议允许进程间通信。简单来说,当机器 A 上的进程调用机器 B 上的进程时,A 上的调用进程被挂起,而 B 上的被调用进程开始执行。调用方可以通过参数将信息传送给被调用方,然后可以通过被调用方传回的结果得到返回。RPC 框架屏蔽了底层传输方式(TCP/UDP)、序列化和反序列化(XML/JSON/二进制)等内容,使用框架只需要知道被调用者的地址和接口就可以了,无须额外地为这些底层内部编程。
Thrift是facebook的一个开源的跨语言框架。
基础架构:
1. 最上层用户自行实现的业务逻辑代码
2. 第二层,thrift编译自动生成的代码,主要用于结构化数据的解析,发送和接收。
TServer主要任务是高效的接收客户端的请求,并将请求转发给processor处理。processor负责对客户端的请求作出响应,包括RPC请求转发,调用参数解析和用户逻辑调用,返回值写回等处理。
3. TProtocol是用于数据类型的解析,将结构化数据转化为字节流给TTransport进行传输。
4. TTransport是与底层传输密切相关的传输层,负责以字节流的方式接收和发送消息体,不关注是什么数据类型。
5. 底层I/O负责实际的数据传输,包括socket,文件和压缩数据流等。