從零開始學(xué)習(xí)Thrift之一——了解Thrift

從零開始學(xué)習(xí)Thrift之一——了解Thrift

1. What is Thrift

Thrift is a lightweight, language-independent software stack for point-to-point RPC implementation. 
Thrift provides clean abstractions and implementations for data transport, data serialization, and 
application level processing. The code generation system takes a simple definition language as input 
and generates code across programming languages that uses the abstracted stack to build interoperable RPC clients and servers.

上面是官方給出的介紹凛澎,簡單的說就是:
Thrift是一種輕量級、獨(dú)立于語言的點(diǎn)對點(diǎn)的RPC實(shí)現(xiàn)框架适掰,且其為數(shù)據(jù)傳輸颂碧,數(shù)據(jù)序列化和應(yīng)用程序級處理提供了干凈的抽象和實(shí)現(xiàn),生成的代碼可以跨語言跨平臺的調(diào)用类浪。

那什么是RPC框架呢载城?

一般的HTTP接口請求是在應(yīng)用層完成的,而RPC可以不依賴于應(yīng)用層協(xié)議费就,可以直接基于TCP進(jìn)行遠(yuǎn)程調(diào)用诉瓦,在傳輸層中即可完成通信,因此更適于某些對效率要求更高的場景力细。由于RPC調(diào)用方式依賴于客戶端與服務(wù)端之間建立Socket連接來實(shí)現(xiàn)二進(jìn)制數(shù)據(jù)通信睬澡,底層會比較復(fù)雜,所以一些RPC框架應(yīng)運(yùn)而生來封裝這種復(fù)雜性眠蚂,讓開發(fā)者將精力聚焦于業(yè)務(wù)之上猴贰。常見的RPC框架包括:Thrift、gRPC河狐、Finagle米绕、Dubbo等等。

2. Thrift文件的定義與編寫

使用IDL對接口進(jìn)行描述的thrift文件命名一般都是以“.thrift”作為后綴:XXX.thrift馋艺,可以在該文件的開頭為該文件加上命名空間限制栅干,格式為:namespace語言 命名空間的名字;

編寫IDL文件時(shí)需要注意的問題

  1. 函數(shù)的參數(shù)要用數(shù)字依序標(biāo)好捐祠,序號從1開始碱鳞,形式為:“序號:參數(shù)名”;

  2. 每個(gè)函數(shù)的最后要加上“,”,最后一個(gè)函數(shù)不加踱蛀;

  3. 在IDL中可以使用/……/添加注釋

  4. 變量名不可以數(shù)字開頭

Thrift支持的數(shù)據(jù)類型

基本類型:

bool:布爾值窿给,true 或 false,對應(yīng) Java 的 boolean
byte:8 位有符號整數(shù)率拒,對應(yīng) Java 的 byte
i16:16 位有符號整數(shù)崩泡,對應(yīng) Java 的 short
i32:32 位有符號整數(shù),對應(yīng) Java 的 int
i64:64 位有符號整數(shù)猬膨,對應(yīng) Java 的 long
double:64 位浮點(diǎn)數(shù)角撞,對應(yīng) Java 的 double
string:未知編碼文本或二進(jìn)制字符串,對應(yīng) Java 的 String

結(jié)構(gòu)體類型:

struct:定義公共的對象,類似于 C 語言中的結(jié)構(gòu)體定義谒所,在 Java 中是一個(gè) JavaBean

容器類型:

list:對應(yīng) Java 的 ArrayList
set:對應(yīng) Java 的 HashSet
map:對應(yīng) Java 的 HashMap

異常類型:

exception:對應(yīng) Java 的 Exception

服務(wù)類型:

service:對應(yīng)服務(wù)的類

3. 生成接口文件

搭建Thrift編譯環(huán)境之后热康,使用下面命令即可將IDL文件編譯成對應(yīng)語言的接口文件:

thrift --gen <language> <Thrift filename>

生成接口文件之后就可以繼續(xù)接下來的服務(wù)端和客服端代碼開發(fā)了,下次繼續(xù)學(xué)習(xí)劣领。

4. Thrift的相關(guān)網(wǎng)址和資料:

  1. Thrift的官方網(wǎng)站:http://thrift.apache.org/
  1. Thrift官方下載地址:http://thrift.apache.org/download
  1. Thrift官方的IDL示例文件(自己寫IDL文件時(shí)可以此為參考):
    https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob_plain;f=test/ThriftTest.thrift;hb=HEAD
  1. 各種環(huán)境下搭建Thrift的方法:http://thrift.apache.org/docs/install/
    該頁面中共提供了CentOS\Ubuntu\OS X\Windows幾種環(huán)境下的搭建Thrift環(huán)境的方法姐军。

參考:
https://blog.csdn.net/houjixin/article/details/42778335
https://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/index.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市尖淘,隨后出現(xiàn)的幾起案子奕锌,更是在濱河造成了極大的恐慌,老刑警劉巖德澈,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歇攻,死亡現(xiàn)場離奇詭異,居然都是意外死亡梆造,警方通過查閱死者的電腦和手機(jī)缴守,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镇辉,“玉大人屡穗,你說我怎么就攤上這事『龈兀” “怎么了村砂?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屹逛。 經(jīng)常有香客問我础废,道長,這世上最難降的妖魔是什么罕模? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任评腺,我火速辦了婚禮,結(jié)果婚禮上淑掌,老公的妹妹穿的比我還像新娘蒿讥。我一直安慰自己,他們只是感情好抛腕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布芋绸。 她就那樣靜靜地躺著,像睡著了一般担敌。 火紅的嫁衣襯著肌膚如雪摔敛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天柄错,我揣著相機(jī)與錄音舷夺,去河邊找鬼苦酱。 笑死售貌,一個(gè)胖子當(dāng)著我的面吹牛给猾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颂跨,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼敢伸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恒削?” 一聲冷哼從身側(cè)響起池颈,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钓丰,沒想到半個(gè)月后躯砰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡携丁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年琢歇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梦鉴。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡李茫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肥橙,到底是詐尸還是另有隱情魄宏,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布存筏,位于F島的核電站宠互,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏椭坚。R本人自食惡果不足惜予跌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望藕溅。 院中可真熱鬧匕得,春花似錦、人聲如沸巾表。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽集币。三九已至考阱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鞠苟,已是汗流浹背乞榨。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工秽之, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吃既。 一個(gè)月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓考榨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鹦倚。 傳聞我的和親對象是個(gè)殘疾皇子河质,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容