此篇介绍一下Thrift通信协议的基本原理。

Thrift介绍

Thrift是一种接口描述语言和二进制通信协议,它被用来定义和创建跨语言的服务,并被当作一个远程过程调用(RPC)框架来使用。Thrift最初是由Facebook为“大规模跨语言服务开发”而创建的。

RPC

Thrift 作为一种轻量级的跨语言 RPC 通信方案,支持多达 25 种编程语言。为了支持多种语言,Thrift 有一套自己的接口定义语言 IDL。可以通过代码生成器,生成各种编程语言的 Client 端和 Server 端的 SDK 代码,这样就保证了不同语言之间可以相互通信。

序列化

Thrift 支持多种序列化格式:如 Binary、Compact、JSON、Multiplexed 等。
支持多种通信方式:如 Socket、Framed、File、Memory、zlib 等。
服务端支持多种处理方式:如 Simple 、Thread Pool、Non-Blocking 等。

使用

通过定义一个以.thrift结尾的文件作为IDL(接口描述语言),内容包含接口的定义,然后通过生成代码的方式,来构建不同语言的RPC客户端和服务端。

通信协议层

通信协议层主要是定义数据传输的格式,对传输的数据进行序列化和反序列化。

传输层

传输层负责直接从网络中读取和写入数据,它定义了具体的网络传输协议;比如说TCP/IP传输等。