是封包壓縮的一種框架,同類型較為知名的還有Protocol Buffer、Message Pack、json等方式
與其他三種也較為常用的框架壓縮同樣100份傳輸資料做比較
壓縮後大小(bytes) 壓縮時間(ns) 解壓時間(ns)
MessagePack 12793 2313335 529458
Protocol Buffers 6590 941790 408571
Thrift 6530 798696 754458
Json 17181 1338371 1776519
可以看到Thrift壓縮後的大小是最小,與ProtocolBuffers差不多
壓縮時是最快的,解壓則是第二慢,但平均而言也是和ProtocolBuffers差不多
所以這兩種框架也是較多人使用的框架(畢竟平均表現比較好)
安裝
Thrift可以直接安裝在windows下,透過cmd來調用,也可以使用Cygwin模擬UNIX環境來使用
以下介紹是使用Cygwin安裝及使用
首先要安裝Cygwin,這是免費軟體,請自行google官方網站下載安裝(有64及32位元版本,請根據自身系統下載)
Cygwin安裝
1.執行安裝檔後,直接按下一步,進到下一個頁面若是初次使用,請選擇"Install from Internet",第二個選項是只下載不安裝,第三個選項是曾經下載過直接從本地端安裝
2.下一步是選擇安裝目錄,這個會是模擬UNIX系統的home目錄
建議使用預設的"C:/Cygwin"即可,絕對不要直接安裝在"C:/",不然你目錄會很亂
至於下面的選項請選擇"All Users"
3.再來是選擇下載資料要儲存的地方,這邊就自行設定,如果要全部下載插件的話
硬碟空間需要 7G (我的安裝時間為01/20/2015,此為當時資料)
請注意選擇的目的地是否擁有足夠空間
4.再來是選擇是否要透過proxy,正常網路環境的話選擇預設的"Direct Connection"即可
5.接下來會看到跑一下子的下載條,這邊是向官方網站要求"可提供下載的server list"
之後會直接列出讓你選擇,因為大部份並沒有寫出server位置
我是使用"cygwin.mirror.constant.com"這個server,下載速度最高可到1M
6.選擇完server會列出插件列表,懶人就點"All"把Default改成Install吧
如果不想全部安裝,請至Thrift官網,根據你想使用的語言(ruby、python等等)查看官網的插件需求
7.接下來就會自動下載,根據我自身經驗,大約需要3~4小時下載,安裝約需1~2小時
若是下載中途斷網,可以重新執行安裝檔,請注意要選擇"同一個server"才能斷點續傳
8.安裝完畢會問你是否建立捷徑,根據自身選擇,之後你就可以從捷徑或是Start Menu→Cygwin→Cygwin開啟使用
Thrift安裝
1.至Thrift官網下載安裝檔,在windows環境安裝需要下載tar檔及thrift.exe檔
請將tar檔解壓縮,以目前最新會獲得thrift-0.9.2資料夾(以下以此資料夾名稱舉例)
2.執行Cygwin,將目錄切換到解壓縮後的thrift目錄,對UNIX系統指令不熟請自行google學習
進到thrift目錄後,執行指令
./configure
**/cygwindrive是windows路徑映射到cygwin路徑的接口,如果你解壓的資料夾在D槽
那麼要切換過去就是 "/cygwindrive/d/thrift-0.9.2"
3.執行完前一個指令後,請進到/thrift-0.9.2/compiler/cpp
依序執行以下兩個指令
make
make install
**若是make時出現
錯誤:「fileno」在此作用欄位中尚未宣告請修改"/thrift-0.9.2"底下的configure.ac
找到AX_CXX_COMPILE_STDCXX_11([noext])改成AX_CXX_COMPILE_STDCXX_11([ext])然後重新下"./configure"後make就可以正常了
4.make install結束後回到/thrift-0.9.2,輸入指令
thrift -r若是有跑出"No output language(s) specified"及一大串usage教學就表示安裝成功了
5.Thrift官方在壓縮檔中有範例,可以根據自己想使用的語言編譯出相對應的教學檔
例如要看CPP的Thrift教學範例,進到"/thrift-0.9.2/tutorial/"執行指令
thrift -r --gen cpp tutorial.thrift參數cpp可以改成你想要的語言,支援的語言可以看tutorial中有哪些語言資料夾即可知道
執行完後,會出現"gen-cpp"資料夾,裡面就是thrift教學檔轉換成cpp後的檔案
沒有留言:
張貼留言