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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章