跟我學(xué)Thrift 3:Thrift服務(wù)模型和序列化機(jī)制

Thrift五種工作模式

每種模式都是在前輩的基礎(chǔ)上的升級(jí)版本:

1.TSimpleServer:?jiǎn)尉€程瓤鼻,阻塞式IO拙已,一般只能用于demo

2.TNonblockingServer:在1的基礎(chǔ)上悬垃,基于NIO的方式访忿。優(yōu)點(diǎn):非阻塞? 缺點(diǎn): 如果有IO或者其它耗時(shí)連接是牢,其它的請(qǐng)求會(huì)受影響

3.THsHaServer:在2的基礎(chǔ)上,主線程用于獲取socket連接礁击,NIO模式盐杂,并負(fù)責(zé)IO讀取漏麦。之后交給線程池進(jìn)行處理。主線程還是會(huì)成為性能瓶頸况褪。

4.TThreadPoolServer:在3的基礎(chǔ)上,主線程通過(guò)阻塞的方式獲取socket連接更耻,然后將socket連接請(qǐng)求封裝成任務(wù)提交到連接池

5.TThreadedSelectorServer:在4的基礎(chǔ)上测垛,將業(yè)務(wù)線程和IO線程分開(kāi),有獨(dú)立的線程池秧均。最高級(jí)和有效的模式食侮,可以作為默認(rèn)模式。


協(xié)議

Thrift可以讓你選擇客戶端與服務(wù)端之間傳輸通信協(xié)議的類別目胡,在傳輸協(xié)議上總體上劃分為文本(text)和二進(jìn)制(binary)傳輸協(xié)議, 為節(jié)約帶寬锯七,提供傳輸效率,一般情況下使用二進(jìn)制類型的傳輸協(xié)議為多數(shù)誉己,但有時(shí)會(huì)還是會(huì)使用基于文本類型的協(xié)議眉尸,這需要根據(jù)項(xiàng)目/產(chǎn)品中的實(shí)際需求:

1、TBinaryProtocol – 二進(jìn)制編碼格式進(jìn)行數(shù)據(jù)傳輸巨双。

2噪猾、TCompactProtocol – 這種協(xié)議非常有效的,使用Variable-Length Quantity (VLQ) 編碼對(duì)數(shù)據(jù)進(jìn)行壓縮筑累。

3袱蜡、TJSONProtocol – 使用JSON的數(shù)據(jù)編碼協(xié)議進(jìn)行數(shù)據(jù)傳輸。

4慢宗、TSimpleJSONProtocol – 這種節(jié)約只提供JSON只寫的協(xié)議坪蚁,適用于通過(guò)腳本語(yǔ)言解析

5、TDebugProtocol – 在開(kāi)發(fā)的過(guò)程中幫助開(kāi)發(fā)人員調(diào)試用的镜沽,以文本的形式展現(xiàn)方便閱讀敏晤。

傳輸層

1、TSocket- 使用堵塞式I/O進(jìn)行傳輸缅茉,也是最常見(jiàn)的模式茵典。

2、TFramedTransport- 使用非阻塞方式宾舅,按塊的大小统阿,進(jìn)行傳輸,類似于Java中的NIO筹我。

3扶平、TFileTransport- 顧名思義按照文件的方式進(jìn)程傳輸,雖然這種方式不提供Java的實(shí)現(xiàn)蔬蕊,但是實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單结澄。

4、TMemoryTransport- 使用內(nèi)存I/O,就好比Java中的ByteArrayOutputStream實(shí)現(xiàn)麻献。

5们妥、TZlibTransport- 使用執(zhí)行zlib壓縮,不提供Java的實(shí)現(xiàn)勉吻。


參考鏈接:

https://blog.csdn.net/houjixin/article/details/42779915

https://www.cnblogs.com/exceptioneye/p/4945073.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末监婶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子齿桃,更是在濱河造成了極大的恐慌惑惶,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件短纵,死亡現(xiàn)場(chǎng)離奇詭異带污,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)香到,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門鱼冀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人悠就,你說(shuō)我怎么就攤上這事雷绢。” “怎么了理卑?”我有些...
    開(kāi)封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵翘紊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我藐唠,道長(zhǎng)帆疟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任宇立,我火速辦了婚禮踪宠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妈嘹。我一直安慰自己柳琢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布润脸。 她就那樣靜靜地躺著柬脸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪毙驯。 梳的紋絲不亂的頭發(fā)上倒堕,一...
    開(kāi)封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音爆价,去河邊找鬼垦巴。 笑死媳搪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的骤宣。 我是一名探鬼主播秦爆,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼憔披!你這毒婦竟也來(lái)了等限?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤活逆,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后拗胜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔗候,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年埂软,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锈遥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勘畔,死狀恐怖所灸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情炫七,我是刑警寧澤爬立,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站万哪,受9級(jí)特大地震影響侠驯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奕巍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一吟策、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧的止,春花似錦檩坚、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至氓润,卻和暖如春剩檀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旺芽。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工沪猴, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辐啄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓运嗜,卻偏偏與公主長(zhǎng)得像壶辜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子担租,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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