跟我學(xué)Thrift 4:由淺入深Thrift文件

我們以顧客下單買車為例子,來深入了解下Thrift的一些細(xì)節(jié)

1.自定義標(biāo)識符VS自動標(biāo)識符

2.Optional VS Required VS Default

3.struct的組合(struct不支持繼承)

首先是Thrift文件定義如下:

namespace java com.whp.demo.thrift.optional

struct Car {

1:required i32 carId,

2:required string carName,

3:required i64 price,

4: optional i16 age=0

}

struct Consumer{

1:required i32 consumerId,

2:optional string name

}

struct Order{

required i64 orderId,

required Car car,

required Consumer consumer,

}

service CarService{

Order createBuyCarOder(1:required Car car, 2:required Consumer consumer)

}

include "other.thrift"? ? ? //包含其它的thrift文件

namespace java com.whp.demo? ?//java下的namespace com.whp.demo

typedef i32 int;? ?//tydef 語法

typedef i64 long;

enum Player {

? ? JAVA = 0;

? ? FLASH = 1;

}


Required VS Opetional

#required:一定會被序列號躺坟,并且如果沒有被復(fù)制属桦,將會被提醒

#optional:如果沒有被賦值熊痴,將不會被序列化。如果有默認(rèn)值聂宾,則將會被序列化成默認(rèn)值果善。具有一定的向后兼容性。

#default: 默認(rèn)情況下是 req-in系谐,opt-out即 對于write stream默認(rèn)是required巾陕,對于read stream是optional


整數(shù)編號

#如果一個程序分開來開發(fā)讨跟,那版本問題就是繞不過去的問題。Thrift的版本是通過“field identifiers”來實現(xiàn)的鄙煤,每個結(jié)構(gòu)由其標(biāo)識晾匠,結(jié)構(gòu)中的每個域有其標(biāo)識,這兩個標(biāo)識唯一決定了一個數(shù)據(jù)域梯刚。在解碼的時候凉馆,數(shù)據(jù)域的標(biāo)識被檢查,如果不能識別亡资,則該數(shù)據(jù)域被拋棄.

用戶自定義編號是從1開始的正整數(shù)

默認(rèn)編號是從-1 開始遞減澜共。

struct Order{

required i64 orderId,

required Car car,

required Consumer consumer,

}

比如這個,編譯后會成為:

ORDER_ID((short)-1,"orderId"),

CAR((short)-2,"car"),

CONSUMER((short)-3,"consumer");

Struct組合

struct Order{

required i64 orderId,

required Car car,

required Consumer consumer,

}

我們可以直接在Order中組合Car和Consumer

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沟于,一起剝皮案震驚了整個濱河市咳胃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旷太,老刑警劉巖展懈,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異供璧,居然都是意外死亡存崖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門睡毒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來来惧,“玉大人,你說我怎么就攤上這事演顾」┎螅” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵钠至,是天一觀的道長葛虐。 經(jīng)常有香客問我,道長棉钧,這世上最難降的妖魔是什么屿脐? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮宪卿,結(jié)果婚禮上的诵,老公的妹妹穿的比我還像新娘。我一直安慰自己佑钾,他們只是感情好西疤,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著休溶,像睡著了一般代赁。 火紅的嫁衣襯著肌膚如雪撒遣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天管跺,我揣著相機與錄音,去河邊找鬼禾进。 笑死豁跑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泻云。 我是一名探鬼主播艇拍,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宠纯!你這毒婦竟也來了卸夕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤婆瓜,失蹤者是張志新(化名)和其女友劉穎快集,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體廉白,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡个初,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了猴蹂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片院溺。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖磅轻,靈堂內(nèi)的尸體忽然破棺而出珍逸,到底是詐尸還是另有隱情,我是刑警寧澤聋溜,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布谆膳,位于F島的核電站,受9級特大地震影響勤婚,放射性物質(zhì)發(fā)生泄漏摹量。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一馒胆、第九天 我趴在偏房一處隱蔽的房頂上張望缨称。 院中可真熱鬧,春花似錦祝迂、人聲如沸睦尽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽当凡。三九已至山害,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沿量,已是汗流浹背浪慌。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留朴则,地道東北人权纤。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像乌妒,于是被迫代替她去往敵國和親汹想。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

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

  • 一. 與 Thrift 的初識 也許大多數(shù)人接觸 Thrift 是從序列化開始的撤蚊。每次搜索 “java序列化” +...
    java菜閱讀 1,314評論 0 6
  • Thrift 架構(gòu) Thrift是一個跨語言的服務(wù)部署框架古掏,最初由Facebook于2007年開發(fā),2008年進入...
    仇仇趣生活閱讀 3,023評論 0 0
  • 1. RPC 1.1 簡介 RPC 的主要功能目標(biāo)是讓構(gòu)建分布式計算(應(yīng)用)更容易侦啸,在提供強大的遠(yuǎn)程調(diào)用能力時不損...
    wy_sure閱讀 6,989評論 0 1
  • 如何才能深入理解Thrift原理槽唾,Everything is in code. 繼續(xù)以上一篇文章中的購買汽車的se...
    whplcyz閱讀 2,053評論 0 98
  • 原文鏈接:thrift入門 轉(zhuǎn)載請注明出處~ Thrift簡介 什么是thrift 簡單來說,是Facebook公...
    是夏莞也是CiCi閱讀 28,189評論 1 42