Dubbo面試八連問,這些你都能答上來嗎?

  1. Dubbo是什麼?前端

  2. Dubbo能作什麼?java

  3. Dubbo內置了哪幾種服務容器?面試

  4. Dubbo 核心的配置有哪些?redis

  5. Dubbo有哪幾種集羣容錯方案,默認是哪一種?spring

  6. Dubbo有哪幾種負載均衡策略,默認是哪一種?架構

  7. Dubbo默認使用的是什麼通訊框架,還有別的選擇嗎?負載均衡

  8. 你以爲用Dubbo好仍是SpringCloud好?框架

1.Dubbo是什麼?

Dubbo是阿里巴巴開源的基於 Java 的高性能 RPC 分佈式服務框架,現已成爲 Apache 基金會孵化項目。致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。異步

簡單的說,dubbo就是個服務框架,若是沒有分佈式的需求,實際上是不須要用的,只有在分佈式的時候,纔有dubbo這樣的分佈式服務框架的需求,而且本質上是個服務調用的東東,說白了就是個遠程服務調用的分佈式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊)分佈式

其核心部分包含:

  1. 遠程通信: 提供對多種基於長鏈接的NIO框架抽象封裝,包括多種線程模型,序列化,以及「請求-響應」模式的信息交換方式。

  2. 集羣容錯: 提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持。

  3. 自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方能夠平滑增長或減小機器。

2. Dubbo能作什麼?

  1. 透明化的遠程方法調用,就像調用本地方法同樣調用遠程方法,只需簡單配置,沒有任何API侵入。

  2. 軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,下降成本,減小單點。

  3. 服務自動註冊與發現,再也不須要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,而且可以平滑添加或刪除服務提供者。

Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置便可,Dubbo基於Spring的Schema擴展進行加載。

3.Dubbo內置了哪幾種服務容器?

Spring Container

Jetty Container

Log4j Container

4.Dubbo 核心的配置有哪些?

【27期】Dubbo面試八連問,這些你都能答上來嗎?

配置關係:

【27期】Dubbo面試八連問,這些你都能答上來嗎?

5.Dubbo有哪幾種集羣容錯方案,默認是哪一種?

【27期】Dubbo面試八連問,這些你都能答上來嗎?

6.Dubbo有哪幾種負載均衡策略,默認是哪一種?

【27期】Dubbo面試八連問,這些你都能答上來嗎?

7.Dubbo默認使用的是什麼通訊框架,還有別的選擇嗎?

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

8.你以爲用Dubbo好仍是SpringCloud好?

沒有好壞,只有適合不適合。

 

dubbo的優點

 

  • 單一應用架構,當網站流量很小時,只需一個應用,將全部功能都部署在一塊兒,以減小部署節點和成本。此時,用於簡化增刪改查工做量的 數據訪問框架(ORM)是關鍵。

  • 垂直應用架構,當訪問量逐漸增大,單一應用增長機器帶來的加速度愈來愈小,將應用拆成互不相干的幾個應用,以提高效率。此時,用於加速前端頁面開發的 Web框架(MVC)是關鍵。

  • 分佈式服務架構,當垂直應用愈來愈多,應用之間交互不可避免,將核心業務抽取出來,做爲獨立的服務,逐漸造成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用於提升業務複用及整合的 分佈式服務框架(RPC)是關鍵。

  • 流動計算架構當服務愈來愈多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增長一個調度中心基於訪問壓力實時管理集羣容量,提升集羣利用率。此時,用於提升機器利用率的 資源調度和治理中心(SOA)是關鍵。

 

SpringCloud優點

 

  • 約定優於配置

  • 開箱即用、快速啓動

  • 適用於各類環境

  • 輕量級的組件

  • 組件支持豐富,功能齊全

 

二者相比較

一、dubbo因爲是二進制的傳輸,佔用帶寬會更少

二、springCloud是http協議傳輸,帶寬會比較多,同時使用http協議通常會使用JSON報文,消耗會更大

三、dubbo的開發難度較大,緣由是dubbo的jar包依賴問題不少大型工程沒法解決

四、springcloud的接口協議約定比較自由且鬆散,須要有強有力的行政措施來限制接口無序升級

五、dubbo的註冊中心能夠選擇zk,redis等多種,springcloud的註冊中心只能用eureka或者自研

根據具體的團隊水平,業務狀況等特色,dubbo和SpringCloud各自能夠發揮各自不一樣的優點,沒有最好的框架,只有最合適的。(這道題比較靈活,要是提早知道對方公司採用的是哪一個,可使勁吹哪一個~)

 

最近三期

【23期】請你談談關於IO同步、異步、阻塞、非阻塞的區別

【24期】請你談談單例模式的優缺點,注意事項,使用場景

【25期】這三道常見的面試題,你有被問過嗎?

相關文章
相關標籤/搜索