thrift支持的多种服务/传输/协议/数据类型分析

thrift通过IDL生成Client和Processor,然后调用 protocol 和 transport


Thrift有多种可选的 protocol ,transport和server

支持的protocol

TBinaryProtocol  直接的二进制格式
TCompactProtocol  效和压缩的二进制格式
TDenseProtocoal  与TCompactProtocol相比,meta信息略有不同
TJSONProtocoal  JSON
TDebugProtocoal  text 格式 方便调试


支持的 transport

TSocket  阻塞的io
TFramedTransport   非阻塞io
TFileTransport   可以将一组thrift请求写到文件中
TMemoryTransport   使用内存 I/O 
TZlibTransport 使用zlib压缩 


支持的server

TSimpleServer  单线程 阻塞
TThreadPoolServer  多线程  阻塞
TNonblockingServer  多线程  非阻塞

THsHaServer api说是TNonblockingServer的扩展,半同步半异步,我也看晕了,望指点。。


可定义的数据类型:

基本类型:

bool:布尔值,true 或 false,对应 Java 的 boolean

byte:8 位有符号整数,对应 Java 的 byte

i16:16 位有符号整数,对应 Java 的 short

i32:32 位有符号整数,对应 Java 的 int

i64:64 位有符号整数,对应 Java 的 long

double:64 位浮点数,对应 Java 的 double

string:未知编码文本或二进制字符串,对应 Java 的 String

结构体类型:

struct:定义公共的对象,类似于 C 语言中的结构体定义,在 Java 中是一个 JavaBean

容器类型:

list:对应 Java 的 ArrayList

set:对应 Java 的 HashSet

map:对应 Java 的 HashMap

异常类型:

exception:对应 Java 的 Exception

服务类型:

service:对应服务的类





版权声明:本文为larrylgq原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。