dubbo 支持哪些通信協(xié)議非凌?支持哪些序列化協(xié)議举农?說一下 Hessian 的數(shù)據(jù)結(jié)構(gòu)?PB 知道嗎敞嗡?為什么 PB 的效率是最高的颁糟?

面試題

dubbo 支持哪些通信協(xié)議航背?支持哪些序列化協(xié)議?說一下 Hessian 的數(shù)據(jù)結(jié)構(gòu)棱貌?PB 知道嗎玖媚?為什么 PB 的效率是最高的?

面試官心理分析

上一個問題婚脱,說說 dubbo 的基本工作原理今魔,那是你必須知道的,至少要知道 dubbo 分成哪些層障贸,然后平時怎么發(fā)起 rpc 請求的错森,注冊、發(fā)現(xiàn)篮洁、調(diào)用涩维,這些是基本的。

接著就可以針對底層進(jìn)行深入的問問了袁波,比如第一步就可以先問問序列化協(xié)議這塊瓦阐,就是平時 RPC 的時候怎么走的?

面試題剖析

序列化篷牌,就是把數(shù)據(jù)結(jié)構(gòu)或者是一些對象睡蟋,轉(zhuǎn)換為二進(jìn)制串的過程,而反序列化是將在序列化過程中所生成的二進(jìn)制串轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu)或者對象的過程娃磺。

serialize-deserialize

dubbo 支持不同的通信協(xié)議

  • dubbo 協(xié)議

默認(rèn)就是走 dubbo 協(xié)議薄湿,單一長連接,進(jìn)行的是 NIO 異步通信偷卧,基于 hessian 作為序列化協(xié)議豺瘤。使用的場景是:傳輸數(shù)據(jù)量小(每次請求在 100kb 以內(nèi))听诸,但是并發(fā)量很高坐求。

為了要支持高并發(fā)場景,一般是服務(wù)提供者就幾臺機(jī)器晌梨,但是服務(wù)消費者有上百臺桥嗤,可能每天調(diào)用量達(dá)到上億次!此時用長連接是最合適的仔蝌,就是跟每個服務(wù)消費者維持一個長連接就可以泛领,可能總共就 100 個連接。然后后面直接基于長連接 NIO 異步通信敛惊,可以支撐高并發(fā)請求渊鞋。

長連接,通俗點說,就是建立連接過后可以持續(xù)發(fā)送請求锡宋,無須再建立連接儡湾。


dubbo-keep-connection

而短連接,每次要發(fā)送請求之前执俩,需要先重新建立一次連接徐钠。


dubbo-not-keep-connection
  • rmi 協(xié)議

走 Java 二進(jìn)制序列化,多個短連接役首,適合消費者和提供者數(shù)量差不多的情況尝丐,適用于文件的傳輸,一般較少用宋税。

  • hessian 協(xié)議

走 hessian 序列化協(xié)議摊崭,多個短連接,適用于提供者數(shù)量比消費者數(shù)量還多的情況杰赛,適用于文件的傳輸,一般較少用矮台。

  • http 協(xié)議

走 json 序列化乏屯。

  • webservice

走 SOAP 文本序列化。

dubbo 支持的序列化協(xié)議

dubbo 支持 hession瘦赫、Java 二進(jìn)制序列化辰晕、json、SOAP 文本序列化多種序列化協(xié)議确虱。但是 hessian 是其默認(rèn)的序列化協(xié)議含友。

說一下 Hessian 的數(shù)據(jù)結(jié)構(gòu)

Hessian 的對象序列化機(jī)制有 8 種原始類型:

  • 原始二進(jìn)制數(shù)據(jù)
  • boolean
  • 64-bit date(64 位毫秒值的日期)
  • 64-bit double
  • 32-bit int
  • 64-bit long
  • null
  • UTF-8 編碼的 string

另外還包括 3 種遞歸類型:

  • list for lists and arrays
  • map for maps and dictionaries
  • object for objects

還有一種特殊的類型:

  • ref:用來表示對共享對象的引用。

為什么 PB 的效率是最高的校辩?

可能有一些同學(xué)比較習(xí)慣于 JSON or XML 數(shù)據(jù)存儲格式窘问,對于 Protocal Buffer 還比較陌生。Protocal Buffer 其實是 Google 出品的一種輕量并且高效的結(jié)構(gòu)化數(shù)據(jù)存儲格式宜咒,性能比 JSON惠赫、XML 要高很多。

其實 PB 之所以性能如此好故黑,主要得益于兩個:第一儿咱,它使用 proto 編譯器,自動進(jìn)行序列化和反序列化场晶,速度非郴觳海快,應(yīng)該比 XMLJSON 快上了 20~100 倍诗轻;第二钳宪,它的數(shù)據(jù)壓縮效果好,就是說它序列化后的數(shù)據(jù)量體積小。因為體積小使套,傳輸起來帶寬和速度上會有優(yōu)化罐呼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市侦高,隨后出現(xiàn)的幾起案子嫉柴,更是在濱河造成了極大的恐慌,老刑警劉巖奉呛,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件计螺,死亡現(xiàn)場離奇詭異,居然都是意外死亡瞧壮,警方通過查閱死者的電腦和手機(jī)登馒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咆槽,“玉大人陈轿,你說我怎么就攤上這事∏胤蓿” “怎么了麦射?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灯谣。 經(jīng)常有香客問我潜秋,道長,這世上最難降的妖魔是什么胎许? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任峻呛,我火速辦了婚禮,結(jié)果婚禮上辜窑,老公的妹妹穿的比我還像新娘钩述。我一直安慰自己,他們只是感情好谬擦,可當(dāng)我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布切距。 她就那樣靜靜地躺著,像睡著了一般惨远。 火紅的嫁衣襯著肌膚如雪谜悟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天北秽,我揣著相機(jī)與錄音葡幸,去河邊找鬼。 笑死贺氓,一個胖子當(dāng)著我的面吹牛蔚叨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼蔑水,長吁一口氣:“原來是場噩夢啊……” “哼邢锯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搀别,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤丹擎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后歇父,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒂培,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年榜苫,在試婚紗的時候發(fā)現(xiàn)自己被綠了护戳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡垂睬,死狀恐怖媳荒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驹饺,我是刑警寧澤肺樟,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站逻淌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疟暖。R本人自食惡果不足惜卡儒,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望俐巴。 院中可真熱鬧骨望,春花似錦、人聲如沸欣舵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缘圈。三九已至劣光,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糟把,已是汗流浹背绢涡。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留遣疯,地道東北人雄可。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親数苫。 傳聞我的和親對象是個殘疾皇子聪舒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,926評論 2 361

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

  • Dubbo入門-協(xié)議&注冊中心 一、配置dubbo多協(xié)議模式 1虐急、默認(rèn)協(xié)議 Dubbo缺省協(xié)議采用單一長連接和NI...
    Java幫幫閱讀 1,185評論 1 4
  • 0 準(zhǔn)備 安裝注冊中心:Zookeeper箱残、Dubbox自帶的dubbo-registry-simple;安裝Du...
    七寸知架構(gòu)閱讀 13,995評論 0 88
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,953評論 2 89
  • 韶妙戏仓,韶妙疚宇,莫問滄桑味道。春來曼舞風(fēng)前赏殃,花兒也羨少年敷待。年少,年少仁热,真?zhèn)€玲瓏格調(diào)榜揖。 [詞林正韻 龍譜韋應(yīng)物體]
    倉西閑客閱讀 1,917評論 47 73
  • 不知為何,下班之前我讀了幾章節(jié)《麥田里的守望者》抗蠢。我是說不知為何要讀這本書举哟,反正讀了幾章就再也讀不下去。我感覺我的...
    蟈蟈2018閱讀 8,715評論 239 298