史上最全 40 道 Dubbo 面試題及答案,看完碾壓面試官

2020-11-24 騰訊網

想往高處走,怎麼能不懂 Dubbo?

Dubbo是國內最出名的分布式服務框架,也是 Java 程式設計師必備的必會的框架之一。Dubbo 更是中高級面試過程中經常會問的技術,無論你是否用過,你都必須熟悉。

下面我為大家準備了一些 Dubbo 常見的的面試題,一些是我經常問別人的,一些是我過去面試遇到的一些問題,總結給大家,希望對大家能有所幫助。

1、Dubbo是什麼?

Dubbo是阿里巴巴開源的基於 Java 的高性能 RPC 分布式服務框架,現已成為 Apache 基金會孵化項目。

面試官問你如果這個都不清楚,那下面的就沒必要問了。

2、為什麼要用Dubbo?

因為是阿里開源項目,國內很多網際網路公司都在用,已經經過很多線上考驗。內部使用了 Netty、Zookeeper,保證了高性能高可用性。

使用 Dubbo 可以將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,可用於提高業務復用靈活擴展,使前端應用能更快速的響應多變的市場需求。

下面這張圖可以很清楚的詮釋,最重要的一點是,分布式架構可以承受更大規模的並發流量。

下面是 Dubbo 的服務治理圖。

3、Dubbo 和 Spring Cloud 有什麼區別?

兩個沒關聯,如果硬要說區別,有以下幾點。

1)通信方式不同

Dubbo 使用的是 RPC 通信,而 Spring Cloud 使用的是 HTTP RESTFul 方式。

2)組成部分不同

4、dubbo都支持什麼協議,推薦用哪種?

dubbo://(推薦)

rmi://

hessian://

http://

webservice://

thrift://

memcached://

redis://

rest://

5、Dubbo需要 Web 容器嗎?

不需要,如果硬要用 Web 容器,只會增加複雜性,也浪費資源。

6、Dubbo內置了哪幾種服務容器?

Spring Container

Jetty Container

Log4j Container

Dubbo 的服務容器只是一個簡單的 Main 方法,並加載一個簡單的 Spring 容器,用於暴露服務。

7、Dubbo裡面有哪幾種節點角色?

8、畫一畫服務註冊與發現的流程圖

該圖來自 Dubbo 官網,供你參考,如果你說你熟悉 Dubbo, 面試官經常會讓你畫這個圖,記好了。

9、Dubbo默認使用什麼註冊中心,還有別的選擇嗎?

推薦使用 Zookeeper 作為註冊中心,還有 Redis、Multicast、Simple 註冊中心,但不推薦。

10、Dubbo有哪幾種配置方式?

1)Spring 配置方式

2)Java API 配置方式

11、Dubbo 核心的配置有哪些?

我曾經面試就遇到過面試官讓你寫這些配置,我也是蒙逼。。

配置之間的關係見下圖。

12、在 Provider 上可以配置的 Consumer 端的屬性有哪些?

1)timeout:方法調用超時

2)retries:失敗重試次數,默認重試 2 次

3)loadbalance:負載均衡算法,默認隨機

4)actives 消費者端,最大並發調用限制

13、Dubbo啟動時如果依賴的服務不可用會怎樣?

Dubbo 預設會在啟動時檢查依賴的服務是否可用,不可用時會拋出異常,阻止 Spring 初始化完成,默認 check="true",可以通過 check="false" 關閉檢查。

14、Dubbo推薦使用什麼序列化框架,你知道的還有哪些?

推薦使用Hessian序列化,還有Duddo、FastJson、Java自帶序列化。

15、Dubbo默認使用的是什麼通信框架,還有別的選擇嗎?

Dubbo 默認使用 Netty 框架,也是推薦的選擇,另外內容還集成有Mina、Grizzly。

16、Dubbo有哪幾種集群容錯方案,默認是哪種?

17、Dubbo有哪幾種負載均衡策略,默認是哪種?

18、註冊了多個同一樣的服務,如果測試指定的某一個服務呢?

可以配置環境點對點直連,繞過註冊中心,將以服務接口為單位,忽略註冊中心的提供者列表。

19、Dubbo支持服務多協議嗎?

Dubbo 允許配置多協議,在不同服務上支持不同協議或者同一服務上同時支持多種協議。

20、當一個服務接口有多種實現時怎麼做?

當一個接口有多種實現時,可以用 group 屬性來分組,服務提供方和消費方都指定同一個 group 即可。

21、服務上線怎麼兼容舊版本?

可以用版本號(version)過渡,多個不同版本的服務註冊到註冊中心,版本號不同的服務相互間不引用。這個和服務分組的概念有一點類似。

22、Dubbo可以對結果進行緩存嗎?

可以,Dubbo 提供了聲明式緩存,用於加速熱門數據的訪問速度,以減少用戶加緩存的工作量。

23、Dubbo服務之間的調用是阻塞的嗎?

默認是同步等待結果阻塞的,支持異步調用。

Dubbo 是基於 NIO 的非阻塞實現並行調用,客戶端不需要啟動多線程即可完成並行調用多個遠程服務,相對多線程開銷較小,異步調用會返回一個 Future 對象。

異步調用流程圖如下。

24、Dubbo支持分布式事務嗎?

目前暫時不支持,後續可能採用基於 JTA/XA 規範實現,如以圖所示。

25、Dubbo telnet 命令能做什麼?

dubbo 通過 telnet 命令來進行服務治理,具體使用看這篇文章《dubbo服務調試管理實用命令》。

telnet localhost 8090

26、Dubbo支持服務降級嗎?

Dubbo 2.2.0 以上版本支持。

27、Dubbo如何優雅停機?

Dubbo 是通過 JDK 的 ShutdownHook 來完成優雅停機的,所以如果使用 kill -9 PID 等強制關閉指令,是不會執行優雅停機的,只有通過 kill PID 時,才會執行。

28、服務提供者能實現失效踢出是什麼原理?

服務失效踢出基於 Zookeeper 的臨時節點原理。

29、如何解決服務調用鏈過長的問題?

Dubbo 可以使用 Pinpoint 和 Apache Skywalking(Incubator) 實現分布式服務追蹤,當然還有其他很多方案。

30、服務讀寫推薦的容錯策略是怎樣的?

讀操作建議使用 Failover 失敗自動切換,默認重試兩次其他伺服器。

寫操作建議使用 Failfast 快速失敗,發一次調用失敗就立即報錯。

31、Dubbo必須依賴的包有哪些?

Dubbo 必須依賴 JDK,其他為可選。

32、Dubbo的管理控制臺能做什麼?

管理控制臺主要包含:路由規則,動態配置,服務降級,訪問控制,權重調整,負載均衡,等管理功能。

33、說說 Dubbo 服務暴露的過程。

Dubbo 會在 Spring 實例化完 bean 之後,在刷新容器最後一步發布 ContextRefreshEvent 事件的時候,通知實現了 ApplicationListener 的 ServiceBean 類進行回調 onApplicationEvent 事件方法,Dubbo 會在這個方法中調用 ServiceBean 父類 ServiceConfig 的 export 方法,而該方法真正實現了服務的(異步或者非異步)發布。

34、Dubbo 停止維護了嗎?

2014 年開始停止維護過幾年,17 年開始重新維護,並進入了 Apache 項目。

35、Dubbo 和 Dubbox 有什麼區別?

Dubbox 是繼 Dubbo 停止維護後,當當網基於 Dubbo 做的一個擴展項目,如加了服務可 Restful 調用,更新了開源組件等。

36、你還了解別的分布式框架嗎?

別的還有 Spring cloud、Facebook 的 Thrift、Twitter 的 Finagle 等。

37、Dubbo 能集成 Spring Boot 嗎?

可以的,項目地址如下。

https://github.com/apache/incubator-dubbo-spring-boot-project

38、在使用過程中都遇到了些什麼問題?

Dubbo 的設計目的是為了滿足高並發小數據量的 rpc 調用,在大數據量下的性能表現並不好,建議使用 rmi 或 http 協議。

39、你讀過 Dubbo 的源碼嗎?

要了解 Dubbo 就必須看其源碼,了解其原理,花點時間看下吧,網上也有很多教程,後續有時間我也會在公眾號上分享 Dubbo 的源碼。

40、你覺得用 Dubbo 好還是 Spring Cloud 好?

擴展性的問題,沒有好壞,只有適合不適合,不過我好像更傾向於使用 Dubbo, Spring Cloud 版本升級太快,組件更新替換太頻繁,配置太繁瑣,還有很多我覺得是沒有 Dubbo 順手的地方……

相關焦點

  • 面試官:小字加一撇,是什麼字?清華大學生回答「少」,被淘汰
    清華大學生回答「少」,被淘汰隨著職場競爭的激烈,公司對人才越來越重視,面試官為了招到最合適崗位的人才,往往會利用面試這個關卡,製造各種刁難,以儘可能的了解到面試者們的真實水,面試者們想要找到一份心儀的工作越來越難, 除非你在面試過程中能表現出過人的才智常超是今年剛從清華畢業的大學生
  • 女面試官:「狗」字加一筆念什麼?研究生機智回答被當場錄取
    面試永遠是職場上一個經久不衰的話題,因為面試是公司招聘到員工必不可少的重要環節,也是每個人都會在社會上經歷到的。但是現在的公司面試已經越來越讓人捉摸不透,面試官們常常會出一些奇形怪狀的題,來「刁難」求職者們。
  • 女面試官:「八」字加一筆,變成什麼字?博士生高情商回答被錄取
    在面試時,面試官都會向應聘者發問,以此考察面試者的軟硬實力。商場如戰場,現在社會,職業競爭非常激烈。因此,不少公司的面試也是嚴格把關,只為找到更好的人才。所以,很多面試官,通常會準備一個終極武器,出一道奇葩面試題來考驗面試者。
  • 面試官:史上筆畫最多的字是什麼?研究生回答「龘」,尷尬了!
    現在很多的用人單位在錄用畢業生的時候,不僅僅考學生的學歷和在校的經歷以及實習經歷,還會在面試的時候,考察應聘者的臨場應變能力和思維邏輯、語言表達能力。我的一個朋友之前去一個公司面試的時候,就遇到了臨場考察的情況。
  • 面試官:下水道井蓋為什麼是圓的?網友的神回復讓面試官讚嘆不已
    別忘了,面試官也是想趁這個時候給公司挑選人才。面試官絞盡腦汁,翻閱書本,查找資料,冥思苦想的營造面試題。「你欣賞哪種性格的人?」「你最崇拜的人是誰?」......求職者小心翼翼,步步為營的回答,希望得到面試官的首肯。面試官露出頗有逼格的笑容,說,別急,我這還有題呢。你能不能過關,全看這一招。面試官出的題目是:下水道井蓋為什麼是圓的?
  • 面試官:一隻羊四條腿,十隻羊多少腿?博士回答:40隻,慘遭淘汰
    第一個回答問題的應聘者是和麗麗一樣普通院校畢業的本科生,他想都沒想直接回答道:「一隻羊4條腿,十隻羊就是40條腿。」面試官對這個看起來是標準的正確答案不是很滿意,搖搖頭讓下一個人回答。第二個回答的就是博士生了,面試官和麗麗都對博士生的回答充滿了期待,希望從博士生的口中說出一個與眾不同的答案,博士生思考了一會兒回答道:「一隻羊有4隻腳,考慮到其中一些羊可能有瘸腿或殘缺,那麼10隻羊的話就是4隻腳到40隻腳之間。」面試官聽了之後失望地搖搖頭告訴他不對。
  • 面試官問:「你的興趣愛好是什麼?」這樣回答,面試官最滿意
    」就是這種類型的,這個題目相對放鬆,回答也多元化,沒有統一的答案,但遠遠不是為了找同好,所以還是需要注意,好好回答。1 面試官為什麼要問這道題?面試官時間是很寶貴的,在短短一個小時之內,需要對候選人深入的了解,所以問任何問題都是有目的性的,那面試官問:「你的興趣愛好是什麼?」有什麼目的呢?
  • 面試官:世界上最小的東西是什麼?美女回答,被人刮目相看!
    職場面試幾乎是每個人進入職場必經的階段,也是必可少的環節,儘管不少職場老手經驗豐富,但還是有很多人感到如今的面試是越來越難對付了。畢竟現在的面試官為了宣導合適的人才,可謂是想盡了一切辦法來考驗求職者的思維、溝通、情商以及林場發揮能力。那麼在面對面試官的問題的刁難,面試者們是如何應對的呢?
  • 數據結構java面試題及答案
    數組是最常用的基礎數據結構,它將元素保存在連續的內存中。它也是面試最喜歡的問題之一,在代碼面試中你會經常聽到很多關於數組的問題,例如,數組的反轉、數組的排序或者查找數組中的一個元素。數組結構的一個關鍵優點是在知道索引的情況能夠以O(1)的複雜度找到一個元素。但是增加或者刪除一個元素是很慢的,因為一旦創建了一個數組,你就不能改變它的大小了。
  • 小夥秒回答,被面試官錄取!
    每個人在應聘的時候都會經歷面試這個過程,面試實際上對於每個應聘者來說,實際上也是一種挑戰。對於剛剛畢業去找工作的人來說就更是如此了,他們沒有什麼面試經驗,面試的時候非常容易緊張。在面試時,面試官都會向應聘者發問,以此考察面試者的軟硬實力。
  • 面試官:哪個月份有28天?回答「閏年2月份」的,全被淘汰!
    面試官:哪個月份有28天?回答「閏年2月份」的,全被淘汰!這是一家中型私企的面試現場,面試官隨意出了一道題,哪個月份有28天?這道題看似容易,實際上有很大的玄機,真以為面試官是想考你這個的嗎?如果這樣想,很有可能會回答錯誤!
  • 面試時,面試官問:請談談你自己的缺點,這3種回答很容易被淘汰
    導讀:溜溜達達看天下,微視觀察君陪你看社會。今天我們要聊的是大家在社會上面試經常碰到的一個問題,這個問題的回答內容也是很容易對面試結果產生影響。當去公司面試時,面試官官問你:請談一談的缺點。你會如何回復呢?
  • 面試官:石頭,西紅柿打頭上,哪個最痛?回答石頭的直接被淘汰
    面試官:石頭,西紅柿打頭上,哪個最痛?最近在求職面試的程程就遇到過這樣的情況,如果不是稍微多思考了一下,就有可能陷入面試官設置的面試題陷阱,錯失機會。經過幾輪面試,最後只剩下三位面試候選人,這幾位候選人的專業水平都不相上下,無論從學歷,還是外形條件等都無法做出一個很好的判斷,所以為了選出唯一的崗位合適人選,面試官決定臨時多加一場面試。
  • 面試官:小字加一撇是什麼字?碩士生回答:少,當場被淘汰了
    她到了面試公司,來應聘的人坐在外面等候面試官的到來,李晶晶也趁著這個時間趕緊背熟簡歷和公司的相關資料。不一會兒,在面試官的帶領下進入到了會議室,面試官先看了看面試者的簡歷,對大家有一個大致的了解後,然後又提了一些簡單的問題,最後經過決定留下了三個人。
  • 面試官:鉛筆應該姓什麼呢?鉛筆居然不姓鉛?答案讓人匪夷所思
    職場如戰場,從古到今高級人才的面試考量的都是一個人的綜合素質,清朝曾國藩在選拔自己的部下是更是嚴苛要求,將領不但要懂打仗懂溝通、還要有過人的膽識,最重要的是要有良好的隨機應變能力。當今企業在選拔人才的時候不再單純看學歷,更看重一個人的綜合素質,而臨場應變能力的高低,側面可以考驗個人邏輯思維是否足夠靈活,這樣的人在遇到問題時才不會慌亂做選擇。畢竟選擇錯誤一次,將會給企業或者團隊的利益造成不同程度的損失。古時候著名的曾國藩,據說其慧眼識人,僅用幾分鐘就能分辨人才。他的看人標準是:邪正看鼻眼,真假看嘴唇,功名看器宇,事業看精神,主意看腳跟,若要看條理,全在言語中。
  • 面試官:將冰變成水最快的方法是什麼?小夥:我三秒鐘就行了
    我的這位好友叫李浩,他是今年的應屆畢業生,他跟很多同學一樣,都踏上了尋找工作的旅程,很快憑藉著優秀的簡歷,很快就有一家知名企業邀請他第二天去面試。李浩從來不打沒有準備的仗,他先是對面試做足了功課,他先從網上市調了50個面試官會問的問題,並且根據具體實際情況,對這些問題給出了答案。但可惜在後來的面試中,他所做這些準備卻沒有起到一點點作用。
  • 面試官:白字加一筆,是什麼字?大專生打敗本科生
    他很早就起床,準備好一切就去面試了,到了面試公司,他先到前臺填好簡歷,就在外等候,就在背公司資料的時候,一位膚白貌美的面試官朝他走了過來,陳赫有些走神了。還沒有緩一口氣,面試官就提出了這樣一個問題:「白字加一筆,是什麼字?」
  • 面試官:用什麼方法能讓冰迅速變成水?男子一句話,直接被錄取!
    假如你在面試的時候,面試官問你:「如何用最快的速度,把冰變成水?」那你應該如何回答呢?小編的一個朋友小東最近就分享了自己曾經遇到過的一次奇葩面試。小東要面試的崗位是平面設計師,除了小東,還有跟兩個面試者,後來三人都被叫到了辦公室進行面試。
  • 男面試官:為什么女生喜歡養小白兔?姑娘嬌羞回應,令面試官臉紅
    每個公司的規模和文化都不同,面試官所提出的問題也不太一樣,而不少的面試官是腦洞大開,問出了一些很奇葩的問題。職場圖片/來源網絡第一位男子聽完問題後,看了看已是「大叔」的面試官,..忍無可忍,他站起來作了回答:「您怎麼能問這樣無理的問題呢?貴公司沒有面試誠意的話,我想也沒必要再浪費彼此的時間了。」說完扭頭就走。
  • 面試官:英文26個字母,如果ET走後剩多少個?小夥機智回答被錄用
    面試官:英文26個字母,如果ET走後剩多少個?小夥機智回答被錄用人們都說面試場如戰場一般,其實這句話最能形容面試了,想要獲得一個份好的工作,那麼你必須先要識破面試官在面試時所設的陷阱,因為稍有不慎你就會掉到面試官給你設的陷阱中去,從而導致了失去獲得這份工作的機會。