Dubbo面試題及答案(2023最新版)
Dubbo面試題及答案,每道都是認真篩選出的高頻面試題,助力大家能找到滿意的工作!
下載連結:全部面試題及答案PDF
其他網際網路大廠面試題
1、Dubbo是什麼?
Dubbo是阿里巴巴開源的基於 Java 的高效能 RPC 分散式服務框架,現已成為 Apache 基金會孵化專案。
面試官問你如果這個都不清楚,那下面的就沒必要問了。
2、為什麼要用Dubbo?
因為是阿里開源專案,國內很多網際網路公司都在用,已經經過很多線上考驗。內部使用了 Netty、Zookeeper,保證了高效能高可用性。
使用 Dubbo 可以將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,可用於提高業務複用靈活擴充套件,使前端應用能更快速的響應多變的市場需求。
3、Dubbo超時時間怎樣設定?
1) 服務提供者端設定超時時間,在 Dubbo 的使用者文件中,推薦如果能在服務端多配置就儘量多配置,因為服務提供者比消費者更清楚自己提供的服務特性。
2)服務消費者端設定超時時間,如果在消費者端設定了超時時間,以消費者端為主,即優先順序更高。因為服務呼叫方設定超時時間控制性更靈活。如果消費方超時,服務端執行緒不會定製,會產生警告。
4、Dubbo與Spring的關係
Dubbo 採用全 Spring 配置方式,透明化接入應用,對應用沒有任何API 侵入,只需用 Spring 載入 Dubbo 的配置即可,Dubbo 基於Spring 的 Schema 擴充套件進行載入。
5、Dubbo 和 Spring Cloud 有什麼區別?
兩個沒關聯,如果硬要說區別,有以下幾點。
1)通訊方式不同
Dubbo 使用的是 RPC 通訊,而 Spring Cloud 使用的是 HTTP RESTFul 方式。
2)組成部分不同
元件 | Dubbo | Spring Clond |
---|---|---|
服務註冊中心 | Zookeeper | Spring Cloud Netflix Eureka |
服務監控 | Dubbo-monitor | Spring Boot Admin |
斷路器 | 不完善 | Spring Cloud Netflix Hystrix |
服務閘道器 | 無 | Spring Cloud Netflix Gateway |
分散式配置 | 無 | Spring Cloud Config |
服務跟蹤 | 無 | Spring Cloud Sleuth |
訊息匯流排 | 無 | Spring Cloud Bus |
資料流 | 無 | Spring Cloud Stream |
批量任務 | 無 | Spring Cloud Task |
6、Dubbo預設使用的是什麼通訊框架,還有別的選擇嗎?
Dubbo 預設使用 Netty 框架,也是推薦的選擇,另外內容還整合有Mina、Grizzly。
7、服務上線怎麼相容舊版本?
可以用版本號(version)過渡,多個不同版本的服務註冊到註冊中心,版本號不同的服務相互間不引用。這個和服務分組的概念有一點類似。
8、Dubbo可以對結果進行快取嗎?
可以,Dubbo 提供了宣告式快取,用於加速熱門資料的訪問速度,以減少使用者加快取的工作量。
9、Dubbo服務之間的呼叫是阻塞的嗎?
預設是同步等待結果阻塞的,支援非同步呼叫。
Dubbo 是基於 NIO 的非阻塞實現並行呼叫,客戶端不需要啟動多執行緒即可完成並行呼叫多個遠端服務,相對多執行緒開銷較小,非同步呼叫會返回一個 Future 物件。
10、Dubbo支援分散式事務嗎?
目前暫時不支援,後續可能採用基於 JTA/XA 規範實現。
11、Dubbo telnet 命令能做什麼?
dubbo 通過 telnet 命令來進行服務治理
telnet localhost 8090
12、Dubbo 停止維護了嗎?
2014 年開始停止維護過幾年,17 年開始重新維護,並進入了 Apache 專案。
13、Dubbo 和 Dubbox 有什麼區別?
Dubbox 是繼 Dubbo 停止維護後,噹噹網基於 Dubbo 做的一個擴充套件專案,如加了服務可 Restful 呼叫,更新了開源元件等。
14、你還了解別的分散式框架嗎?
別的還有 Spring cloud、Facebook 的 Thrift、Twitter 的 Finagle 等。
15、Dubbo 能整合 Spring Boot 嗎?
可以的,專案地址如下。
https://github.com/apache/incubator-dubbo-spring-boot-project
16、在使用過程中都遇到了些什麼問題?
Dubbo 的設計目的是為了滿足高併發小資料量的 rpc 呼叫,在大資料量下的效能表現並不好,建議使用 rmi 或 http 協議。
17、dubbo都支援什麼協議,推薦用哪種?
dubbo://(推薦)
rmi://
hessian://
http://
webservice://
thrift://
memcached://
redis://
rest://
18、Dubbo需要 Web 容器嗎?
不需要,如果硬要用 Web 容器,只會增加複雜性,也浪費資源。
19、Dubbo內建了哪幾種服務容器?
Spring Container
Jetty Container
Log4j Container
Dubbo 的服務容器只是一個簡單的 Main 方法,並載入一個簡單的 Spring 容器,用於暴露服務。
20、Dubbo裡面有哪幾種節點角色?
節點 | 角色說明 |
---|---|
Provider | 暴露服務的服務提供方 |
Consumer | 呼叫遠端服務的服務消費方 |
Registry | 服務註冊與發現的註冊中心 |
Monitor | 統計服務的呼叫次數和呼叫時間的監控中心 |
Container | 服務執行容器 |