Thrift 跨服務開發框架,thrift開發框架
Thrift概述
Thrift是一個軟件框架,用來進行可擴展且跨語言的服務的開發。它結合了功能強大的軟件堆棧和代碼生成引擎,以構建在 C++, Java, Python, PHP,
Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等編程語言間無縫結合的、高效的服務。
代碼生成工具命令:“thrift-*.exe" -r -gen java ./*.thrift 生成 gen-java 目錄
1.服務端編碼基本步驟:
* 實現服務處理接口impl
* 創建TProcessor //讀入,寫出
* 創建TServerTransport
* 創建TProtocol
* 創建TServer
* 啟動Server
2.客戶端編碼基本步驟:
* 創建Transport
* 創建TProtocol
* 基於TTransport和TProtocol創建 Client
* 調用Client的相應方法
3.數據傳輸協議
* TBinaryProtocol : 二進制格式.
* TCompactProtocol : 壓縮格式
* TJSONProtocol : JSON格式
* TSimpleJSONProtocol : 提供JSON只寫協議, 生成的文件很容易通過腳本語言解析
4.Server
* TSimpleServer 單線程模式 測試用
* TNonblockingServer NIO selector循環監聽
* THsHaServer 它使用一個單獨的線程來處理網絡I/O,一個獨立的worker線程池來處理消息
* TThreadedSelectorServer 非阻塞,用多個線程來處理網絡I/O。它維護了兩個線程池,一個用來處理網絡I/O,另一個用來進行請求的處理
* TThreadPoolServer 采用阻塞socket方式工作,,主線程負責阻塞式監聽“監聽socket”中是否有新socket到來,業務處理交由一個線程池來處理
項目地址:https://github.com/windwant/thrifttest