每天十道面試題-20200410

題目

  • 1、Dubbo是什麼?
  • 2、爲什麼要用Dubbo?
  • 3、Dubbo 和 Spring Cloud 有什麼區別?
  • 4、Dubbo都支持什麼協議,推薦用哪種?
  • 5、Dubbo需要 Web 容器嗎?
  • 6、Dubbo內置了哪幾種服務容器?
  • 7、Dubbo裏面有哪幾種節點角色?
  • 8、畫一畫服務註冊與發現的流程圖
  • 9、Dubbo默認使用什麼註冊中心,還有別的選擇嗎?
  • 10、Dubbo有哪幾種配置方式?

解答

題目一
  • 題幹:Dubbo是什麼?
  • 分析:
  • Dubbo是一款分佈式RPC框架,提供了諸如:服務註冊與發現、服務治理、服務調度監控等功能。
    從單一應用架構【ORM】到垂直應用架構【MVC】到分佈式服務架構【RPC】再到流動計算架構【SOA】整個演化過程,當服務不算很多的時候,只需要進行服務拆分,然後通過RPC調用來達到系統功能,然後隨着服務繼續增大,服務 URL 配置管理變得非常困難,F5 硬件負載均衡器的單點壓力也越來越大,就需要有更加具體的服務註冊發現功能,隨着服務繼續增多,各個服務之間的調用邏輯變的錯綜複雜,所以就需要進行服務治理,在隨着服務繼續增多,有些服務節點的狀況或者服務器使用情況都需要進行更細化的監控,所以就相應的功能模塊出現。而Dubbo就是提供這一系列功能的框架。詳細可見Dubbo官方文檔需求部分

  • 回答:
  • 見分析。

題目二
  • 題幹:爲什麼要用Dubbo?
  • 分析:
  • 這個想問的不是各種RPC框架中間的孰優孰劣,而是從服務迭代過程中從單體到微服務,這個過程中爲什麼要引入Dubbo,這裏可以參考一下題目一 。從單體架構拆分後,根據業務或者功能拆分,我們可以通過http調用來滿足這個訴求,但是由於之前的http協議並不能很好的適用於服務之間的調用,所以出現了一些RPC用到的協議,而對於一個RPC框架來講並不是單純的提供PRC調用功能即可,對於服務註冊發現,服務降級、負載均衡等都有相關實現,這點我們在Dubbo和SpringCloud中都可以看到。

  • 回答:
  • 見分析。

題目三
  • 題幹:Dubbo 和 Spring Cloud 有什麼區別?
  • 分析:
  • 之前的Dubbo並沒有實現具體的服務註冊中心,而是依託於如ZK、Redis等來實現現在也可以搭配Nacos來使用通過dubbo-registry-nacos來完成,而對於SC來講,本身自帶了Eureka專職與服務註冊與發現。但是由於Eureka開發的問題以及Eureka本身的一些問題,現在也可以使用如Consul 、或者阿里的Nacos。再就是SC的功能雖多但是有些並不是很好,我們都可以自行替代。而Dubbo在某些部分是存在空缺的。

  • 回答:
  • 見分析 。

題目四
題目五
  • 題幹:Dubbo需要 Web 容器嗎?
  • 分析:
  • 不需要,因爲首先Dubbo是一款RPC框架,最基本的需要有服務註冊與發現,而者並不依賴於web容器,在Dubbo對於容器的SPI擴展中我們可以發現:
    org.apache.dubbo.container.spring.SpringContainer
    org.apache.dubbo.container.spring.JettyContainer
    org.apache.dubbo.container.spring.Log4jContainer

    啓動容器的時候我們可以選:spring、javaconfig、jetty、log4j、logback等參數
    而對於Dubbo容器默認的容器是Spring這個有在源碼中體現。

  • 回答:
  • 見分析。

題目六
  • 題幹:Dubbo內置了哪幾種服務容器?
  • 分析:
  • 在Dubbo對於容器的SPI擴展中我們可以發現:
    spring=org.apache.dubbo.container.spring.SpringContainer
    log4j=org.apache.dubbo.container.log4j.Log4jContainer
    logback=org.apache.dubbo.container.logback.LogbackContainer

    啓動容器的時候我們可以選:spring、javaconfig、log4j、logback等參數

  • 回答:
  • 見分析。

題目七
  • 題幹:Dubbo裏面有哪幾種節點角色?

  • 分析:

  • 角色說明:
    Provider : 暴露服務的服務提供方
    Consumer : 調用遠程服務的服務消費方
    Registry : 服務註冊與發現的註冊中心
    Monitor : 統計服務的調用次數和調用時間的監控中心
    Container : 服務運行容器
    參考我這篇文章

  • 回答:

  • 參考我這篇文章

題目八
題目九
  • 題幹:Dubbo默認使用什麼註冊中心,還有別的選擇嗎?

  • 分析:

  • 現在推薦使用Nacos,之前使用的是zk,此外redis、Multicast 註冊中心、Simple 註冊中心。

  • 回答:

  • 見分析。

題目十
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章