來源:http://binghejinjun.iteye.com/blog/1175239
Thrift是facebook向apache推出的爲了解決大數據量交換問題的開源項目。開發人員需要定義類似於c的結構體的數據結構和服務接口,利用thrift工具自動產生構建RPC客戶端和服務器所需的所有代碼。它可以跨語言,可靠通信。
thrift設計一:將傳輸層從代碼層中分離出來thrift設計二:將數據結構從傳輸層中分離出來
本質上,它是以普通二進制格式寫數據
實際操作過程:
1.如果要給服務命名,可以考慮使用此種格式:namespace java com.epri.distriAuto.thrift
2.Thrift 中的基本數據類型
類型 描述
bool true, false
byte 8位的有符號整數
i16 16位的有符號整數
i32 32位的有符號整數
i64 64位的有符號整數
double 64位的浮點數
string UTF-8編碼的字符串
binary 字符數組
struct 結構體
list 有序的元素列表,類似於STL的vector
set 無序的不重複元素集,類似於STL的set
map key-value型的映射,類似於STL的map
exception 是一個繼承於本地語言的exception基類
service 服務。包含多個函數接口(純虛函數)
3.下載thrift編譯工具,此工具可以根據定義好的文件生成服務的客戶端和服務端代碼
編譯格式如下:
thrift -gen java test.thrift
開發:
1.編譯成功後會生成一個gen-java包,把裏面的類文件加入到工程中,注意導入thrift相關jar包:
slf4j-log4j12-1.5.11.jar,slf4j-api-1.5.11.jar,log4j-1.3alpha-8.ja,,libthrift.jar
2.編寫接口實現類,實現test.Iface接口
3.編寫服務端代碼
4.編寫客戶端代碼
5.測試,運行
說明:
1.thrift編譯工具我已放入要下載的文件,名字就是thrift
2.工程中涵蓋運行所需全部jar包,直接下載運行即可