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:对应服务的类