Thrift协议与传输选择
生活随笔
收集整理的這篇文章主要介紹了
Thrift协议与传输选择
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 協議
Thrift 可以讓用戶選擇客戶端與服務端之間傳輸通信的消息協議類別,如我們前面所講總體劃分為文本 (text) 和二進制 (binary) ,為節約帶寬,提高傳輸效率,一般情況下使用二進制類型的為多數,有時還會使用基于文本類型的協議,這需要根據項目 / 產品中的實際需求。常用協議有以下幾種:
-
thrift.protocol.TBinaryProtocol
二進制編碼格式進行數據傳輸
客戶端構建方式:
protocol = TBinaryProtocol.TBinaryProtocol(transport)服務端構建方式:
pfactory = TBinaryProtocol.TBinaryProtocolFactory() -
thrift.protocol.TCompactProtocol
高效率的、密集的二進制編碼格式進行數據傳輸,推薦使用
客戶端構建方式:
protocol = TCompactProtocol.TCompactProtocol(transport)服務端構建方式:
pfactory = TCompactProtocol.TCompactProtocolFactory() -
thrift.protocol.TJSONProtocol
使用 JSON 的數據編碼協議進行數據傳輸
客戶端構建方式:
protocol = TJSONProtocol.TJSONProtocol(transport)服務端構建方式:
pfactory = TJSONProtocol.TJSONProtocolFactory()
2 傳輸
常用的傳輸層有以下幾種:
-
thrift.transport.TSocket
使用阻塞式 I/O 進行傳輸,是最常見的模式
客戶端構建方式:
transport = TSocket.TSocket('127.0.0.1', 8888)服務端構建方式:
transport = TSocket.TServerSocket('127.0.0.1', 8888) -
thrift.transport.TTransport.TBufferedTransport
原始的socket方式效率不高,Thrift提供了封裝的加了緩存的傳輸控制,推薦方式
客戶端構建方式:
transport = TSocket.TSocket('127.0.0.1', 8888) transport = TTransport.TBufferedTransport(transport)服務端構建方式:
transport = TSocket.TServerSocket('127.0.0.1', 8888) tfactory = TTransport.TBufferedTransportFactory()
總結
以上是生活随笔為你收集整理的Thrift协议与传输选择的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Thrift的接口定义语言IDL
- 下一篇: Thrift的服务器和客户端Python