thrift介紹


thrift鏈接:https://www.cnblogs.com/sxrtb/p/12209455.html

參考:https://www.cnblogs.com/newboys/p/9366762.html

一  描述thrift(個人英語飄過六級,翻譯的肯定不是很准確,請諒解。)

  

  Apache thrift框架,旨在處理擴語言的開發服務,它結合代碼生產引擎的軟件棧,構建高效地和無縫地運行在C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml和Delphi等語言中的服務。

 

二  文件說明和使用方式(thrift通過一個中間語言IDL(接口定義語言)來定義RPC的數據類型和接口)

  我們需要定義一個thrift文件,這個文件是由thrift tpe(相當於實體類,也可以理解為使我們需要進行服務間傳遞的消息)和Service(這個Service就相當於一個service類,中間有各種方法)構成的接口定義文件。文件中定義的Service將有服務端進行實現,並由客戶端進行調用。thrift編輯器將你定義的thrift文件生產為你客戶端和服務端使用的資源文件。通過運行thrift --gen <language> <Thrift filename>來生產資源文件。

  --language是你使用的編程語言。

  --Thrift filename生產文件的位置

 

三 協議棧結構

  最上層是用戶自行實現的業務邏輯代碼.第二層是由thrift編譯器自動生成的代碼,主要用於結構化數據的解析,發送和接收。TServer主要任務是高效的接受客戶端請求,並將請求轉發給Processor處理。Processor負責對客戶端的請求做出響應,包括RPC請求轉發,調用參數解析和用戶邏輯調用,返回值寫回等處理。從TProtocol以下部分是thirft的傳輸協議和底層I/O通信。TProtocol是用於數據類型解析的,將結構化數據轉化為字節流給TTransport進行傳輸。TTransport是與底層數據傳輸密切相關的傳輸層,負責以字節流方式接收和發送消息體,不關注是什么數據類型。底層IO負責實際的數據傳輸,包括socket、文件和壓縮數據流等。

 

四 核心文件

  thrift中核心文件就是.thrift文件,這個文件所包含的內容其實並不復雜,包括Base Types,Special Types,Structs,Containers,Exceptions和Services。文檔說明http://thrift.apache.org/docs/types#special-types

 

  Base Types為基礎類型,就這幾種;Special Types沒怎么用;Structs就相當於一個實體類;Containers就是thrift提供的集合支持;Exceptions就是thrift中提供的異常支持;Service就是我們進行通訊的接口。

  具體使用可以參看我博客中的使用方式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM