日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dubbo 序列化协议 5 连问,你接得住不?

發(fā)布時(shí)間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dubbo 序列化协议 5 连问,你接得住不? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1)dubbo 支持哪些通信協(xié)議?

2)支持哪些序列化協(xié)議?

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

4)PB 知道嗎?

5)為什么 PB 的效率是最高的?

面試官心理分析

上一個(gè)問題,說說 dubbo 的基本工作原理,那是你必須知道的,至少要知道 dubbo 分成哪些層,然后平時(shí)怎么發(fā)起 rpc 請(qǐng)求的,注冊(cè)、發(fā)現(xiàn)、調(diào)用,這些是基本的。

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

面試題剖析

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

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

1、dubbo 協(xié)議

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

為了要支持高并發(fā)場(chǎng)景,一般是服務(wù)提供者就幾臺(tái)機(jī)器,但是服務(wù)消費(fèi)者有上百臺(tái),可能每天調(diào)用量達(dá)到上億次!此時(shí)用長連接是最合適的,就是跟每個(gè)服務(wù)消費(fèi)者維持一個(gè)長連接就可以,可能總共就 100 個(gè)連接。然后后面直接基于長連接 NIO 異步通信,可以支撐高并發(fā)請(qǐng)求。

長連接,通俗點(diǎn)說,就是建立連接過后可以持續(xù)發(fā)送請(qǐng)求,無須再建立連接。

?

2、rmi 協(xié)議

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

3、hessian 協(xié)議

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

4、http 協(xié)議

走 json 序列化。

5、webservice

走 SOAP 文本

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

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

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

Hessian 的對(duì)象序列化機(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:用來表示對(duì)共享對(duì)象的引用。

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

可能有一些同學(xué)比較習(xí)慣于 JSON or XML 數(shù)據(jù)存儲(chǔ)格式,對(duì)于 Protocol Buffer 還比較陌生。

Protocol Buffer 其實(shí)是 Google 出品的一種輕量并且高效的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)格式,性能比 JSON、XML 要高很多。

其實(shí) PB 之所以性能如此好,主要得益于兩個(gè):

第一,它使用 proto 編譯器,自動(dòng)進(jìn)行序列化和反序列化,速度非常快,應(yīng)該比 XML 和 JSON 快上了 20~100?倍;

第二,它的數(shù)據(jù)壓縮效果好,就是說它序列化后的數(shù)據(jù)量體積小。因?yàn)轶w積小,傳輸起來帶寬和速度上會(huì)有優(yōu)化。

作者:yanglbme,來源:https://dwz.cn/ZE2O4lHu

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Dubbo 序列化协议 5 连问,你接得住不?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。