thrift支持数据类型
基本类型:
- bool: 布尔值
- byte: 8位有符号整数
- i16: 16位有符号整数
- i32: 32位有符号整数
- i64: 64位有符号整数
- double: 64位浮点数
- string: UTF-8编码的字符串
- binary: 二进制串
结构体类型:
- struct: 定义的结构体对象
容器类型:
- list: 有序元素列表
- set: 无序无重复元素集合
- map: 有序的key/value集合
异常类型:
- exception: 异常类型
服务类型:
- service: 具体对应服务的类
除此之外,Thrift 还支持枚举类型(enum)和常量类型(const)
IDL语法参考:
  Thrift
可以让用户选择 客户端与 服务端之间 传输通信协议的类别,在 传输协议上总体划分为 文本(text
)和 二进制(binary
)传输协议,主要有BinaryProtocol、CompactProtocol、JsonProtocol、MultiplexedProtocol,一般实现RPC最常用协议BinaryProtocol和CompactProtocol。常用协议有以下几种:
- TBinaryProtocol: 二进制编码格式进行数据传输
- TCompactProtocol: 高效率的、 密集的 二进制编码格式进行数据传输
- TJSONProtocol: 使用
JSON
文本的数据编码协议进行数据传输 - TSimpleJSONProtocol:只提供
JSON
只写的协议,适用于通过 *脚本语言解析
上面是RPC通讯协议,序列化协议Thrift实现主要是Binary、Compact、JSON,可以理解通讯协议里面包含了序列化协议。
Thrift 网络栈主要包含四部分:
- Server
- 创建 transport
- 为 transport 创建一个输入/输出 protocol
- 基于 输入/输出 protocol 创建一个 processor
- 等待连接并处理
- Processor
- 从输入流读取数据并写到输出流
- Protocol
- 协议层可以理解为主要负责序列化和反序列化,是与 Proto Buf 可类比的层
- 常用的有 binary、compact:
- Transport
- 通常使用基于 Raw TCP 的传输协议,包括 Buffered 和 Framed 的;
- 一般包含打开链接、关闭链接、读写数据、监听链接等接口和功能;
Original: https://www.cnblogs.com/-wenli/p/15088124.html
Author: std
Title: Apache Thrift系列(一):Thrift基本及IDL语法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/548904/
转载文章受原作者版权保护。转载请注明原作者出处!