1、Thrift 概念
Thrift是一個軟件框架,用來進行可擴展且跨語言的服務的開發。它結合了功能強大的軟件堆棧和代碼生成引擎,以構建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 這些編程語言間無縫結合的、高效的服務。
thrift最初由facebook開發,07年四月開放源碼,08年5月進入apache孵化器。
Thrift允許你定義一個簡單的定義文件中的數據類型和服務接口。以作為輸入文件,編譯器生成代碼用來方便地生成RPC客戶端和服務器通信的無縫跨編程語言。
看到這裡,感覺thrift的作用與webservice差不多,webservice使用xml文件傳輸,文件太大,效率不高,thrift使用二進制數據,效率更高!
2、Thrift Installing and Compiling 安裝與編譯
操作系統:Ubuntu 8.0+
Thrift安裝包:thrift-0.7.0.tar.gz
下載地址:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /pub/2011/12/25/Ubuntu環境下Thrift的安裝、編譯以及測試/
具體安裝過程:
① Required packages 安裝相關支持包
sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
② tar -xvf thrift-0.7.0.tar.gz 解壓縮文件
③ cd thrift-0.7.0 進入Thrift安裝主目錄
④ ./configure (可能出現權限不夠,請修改文件權限sudo chmod 777 configure)
⑤ sudo make
⑥ sudo make install
測試安裝編譯是否成功:
在終端輸入thrift出現下面的信息,
ok,install thrift success.
Usage: thrift [options] file
Options:
-version Print the compiler version
-o dir Set the output directory for gen-* packages
(default: current directory)
-I dir Add a directory to the list of directories
searched for include directives \
-nowarn Suppress all compiler warnings (BAD!)
….
⑦編譯Thrift支持Java的相關Jar文件
cd ./lib/java
然後編譯ant (如果沒有安裝ant的話,sudo apt-get install ant,何為ant?類似c++的make)
會生成一個build文件夾,裡面存放的是Thrift支持JAVA的相關jar包
3、Thrift Tutorial (for java) 測試教程
使用Thrift Tutorial的具體步驟:
cd ../../tutorial 進入Thrift自帶的tutorial文件夾
thrift -r --gen java tutorial.thrift生成gen-java目錄
cd java
然後編譯ant 生成相關java文件
現在就可以運行demo進行測試了~
開啟服務端 ./JavaServer &
再打開一個終端,模擬客戶端訪問 ./JavaClient
運行結果如圖:
1、service端:
2、Client端: