跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 Thrift 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
Thrift
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''Thrift'''這是一種接口描述語言佮二進位通訊協議,伊予人用來定義佮創建跨語言的服務。伊予人當做一个遠逝的過程調用(RPC)框架來使用,是由 Facebook 為「大規模跨語言服務開發」開發的。伊通過一个代碼生成 ia̋n-jín 聯合一个軟體棧,來創建無仝程度的、無縫的跨平台高效服務,會用得使用 C #、C + +(是因為 POSIX 兼容系統)、 Cappuccino、Cocoa、Delphi、Erlang、Go、Haskell、Java、Node . js、OCaml、Perl、PHP、Python、Ruby 和 Smalltalk。雖然伊較早是由著 Facebook 開發的,但是伊這馬是 Apache 軟體基金會的開源項目矣。這實現予人描述佇二空空七年四月的一篇由 Facebook 發表的技術論文中,該論文現由 Apache 掌管。 ==架構== Thrift 包括一套完整的棧來創建客戶捀佮服務端的程序。頂層的部份是由 Thrift 定義生成的代碼。啊若服務著對這个文件客戶捀和處理器代碼生成。佇生成的代碼里會創建無仝款是內建類型的資料結構,並且共做結果共發送。協議佮傳輸層是運行時庫的一部份。有矣 Thrift,就會當定義一个服務抑是改變通訊佮傳輸協議,無需要重新編譯代碼。除了客戶捀的部份以外,Thrift 猶閣包括侍服器基礎設施來集做協議佮傳輸,如實窒起來、非常的阻窒車濟執行緒侍服器。棧中作為 I / O 基礎的部份對無仝款的語言則有無仝款的實現。 Thrift 支持濟通訊協議: * TBinaryProtocol–一種簡單的二進位格式,簡單,但是無為著空間效率優化。比文本協議處理起來較緊,但是閣較歹做。 * TCompactProtocol–閣較絚的這款二進位的格式,處理起來通常是平懸效。 * TDebugProtocol–一種人類會當讀的文本格式,用來協助調試。 * TDenseProtocol–佮 TCompactProtocol 類似,將傳輸數據的元信息剝離。 * TJSONProtocol–使用 JSON 著數據編碼。 * TSimpleJSONProtocol–一種寫協議,伊袂使予人 Thrift 解析,因為伊使用 JSON 時擲捒元數據。適合用跤本語言來解破。 支持的 _ 傳輸協議 _ 有: * TFileTransport–該傳輸協議會做文件。 * TFramedTransport–使用一个非阻塞侍服器的時陣,要求使用這傳輸協議。伊按照發送數據,其中每一見的開頭是長度信息。 * TMemoryTransport–使用存儲器影射輸入輸出。(Java 的實現使用一个簡單的 ` ByteArrayOutputStream `。) * TSocket–使用窒的套接字 I / O 來傳輸。 * TZlibTransport–用 zlib 執行壓縮。用佇連接另外一个傳輸協議。 Thrift 猶閣提供濟濟的侍服器,包括講: * TNonblockingServer–一个濟執行緒侍服器,伊使用非常的阻塞 I / O(Java 的實現使用了 NIO 巷路)。 TFramedTransport 著愛來佮這个侍服器配套使用。 * TSimpleServer–一个單執行緒侍服器,伊使用標準的阻塞 I / O。試的時陣真有路用。 * TThreadPoolServer–一个濟執行緒侍服器,伊使用標準的阻塞 I / O。 ==優點== Thrift 一寡已經明確的優點包括: * 佮一寡替代選擇,比如講 SOAP 相比並,跨語言序列化的代價閣較低,因為伊使用二進位格式。 * 伊有一个閣瘦閣清氣的庫,無編碼框殼,無咧 XML 配置文件。 * 縛定感覺足自然的。比如講,Java 使用 ` java . util . ArrayList < String > `;C + + 使用 ` std : : vector < std : : string > `。 * 應用層通訊格式和序列化層通訊格式是完全分離的。𪜶攏會當獨立修改。 * 預定義的序列化格式包括:二進位格式、著 HTTP 友好的格式,猶閣有收牢的二進位格式。 * 兼做跨語言文件序列化。 * 協議使用軟版本號機制軟體版本管理。Thrift 無要求一个中心化的和顯式的版本號機制,譬如講主版本號 / 次版本號。鬆保存的團隊會使輕鬆控制 RPC 調用的演進。 * 無構建依賴嘛無含非標準化的軟體。不存在無兼用的軟體許可證混用的狀況。 ==創建一个 Thrift 服務== Thrift 由 C + + 編寫,會當為濟濟的語言創建代碼。欲創建一个 Thrift 服務,著愛寫一寡 Thrift 文件來講伊,為目標語言生成代碼,而且閣寫一寡代碼來啟動侍服器佮對客戶捀調用伊。下跤就是一个按呢的描述文件的代碼示例: Thrift 欲由這个描述信息生成獨立的代碼。比如講,佇咧 Java 里,` PhoneType ` 將是 ` Phone ` 類中一个簡單的 ` enum `。 ==參見== * 數據序列化格式較 * Apache Avro * ASN . 一(抽象語法標記一) * Caucho 的 Hessian * Google 的 Protocol Buffers * 外部的數據表示法 * ZeroC 的 ICE * SDXF(結構化數據交換格式) ==參考文獻== ==外部連結== * 官方網站(英文) * Thrift:欠失的指南(英文) * Thrift 狗蟻任務(英文) * Thrift 教示講(英文) [[分類: 待校正]]
返回到「
Thrift
」。