傳輸層 TTransport:api
TTransport:客戶端傳輸層抽象基礎類,read、write、flush、close 等方法數組
TSocket 與 TNonBlockingSocket:分別是基於 BIO 和 NIO 客戶端傳輸類異步
TServerSocket 與 TNonBlockingServerSocket:分別是基於 BIO 和 NIO 服務端傳輸類編碼
TZlibTransport:spa
TSaslClientTransport 與 TSaslServerTransport:提供 SSL 校驗線程
協議層 Protocol:server
TBinaryProtocol:二進制流傳輸協議類,把各種型轉換成 byte 數組,交給 TTransport 傳輸對象
TCompactProtocol:使用 Variable-Length Quantity(VLQ)編碼對數據進行壓縮(壓縮方法二進制協議類,將 Integer 按 ZigZag 壓縮)blog
TTupleProtocol:繼承自 TCompactProtocol,Struct 使用時更省空間繼承
TJSONProtocol:JSON 格式協議類,將數據封裝成 JSON 格式,再轉成 byte 數組交給傳輸層
TSimpleJSONProtocol:JSON 格式協議類,但只支持寫的功能
處理層 Processor:
TProcessor:基礎接口,process(TProtocol in, TProtocol out)
TBaseProcessor:基礎抽象類,持有 processMap 對象,key 爲方法名,value 爲方法
Processor:由聲明的 IDL 生成,實現 TProcessor 接口並繼承了 TBaseProcessor 類
TAsyncProcessor:異步處理接口
TBaseAsyncProcessor:異步處理抽象類
AsyncProcessor:由聲明的 IDL 生成,實現 TAsyncProcessor 接口並繼承 TAsyncProcessor 類
服務層 Server:
TServer:基礎抽象類,相似一個容器,持有 TProcessor、TTransport、TProtocol 的工廠對象,提供 server() 方法,用於啓動服務,stop() 用於中止服務
TSimpleServer:單線程阻塞式服務
TNonblockingServer:支持非阻塞單線程服務模型,基於 NIO 的 select 實現
TThreadPoolServer:專門的線程接受請求並交給線程池處理,阻塞式線程池模型