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:對應服務的類