【面試普通人VS高手系列】Dubbo的服務請求失敗怎么處理?


今天分享的面試題,幾乎是90%以上的互聯網公司都會問到的問題。
“Dubbo的服務請求失敗怎么處理”?
對於這個問題,我們來看一下普通人和高手的回答。

普通人:

嗯… 我記得, Dubbo請求處理失敗以后,好像是會重試。 嗯!

高手:

Dubbo是一個RPC框架,它為我們的應用提供了遠程通信能力的封裝,同時,Dubbo在RPC通信的基礎上,逐步在向一個生態在演進,它涵蓋了服務注冊、動態路由、容錯、服務降級、負載均衡等能力,基本上在微服務架構下面臨的問題,Dubbo都可以解決。

而對於Dubbo服務請求失敗的場景,默認提供了重試的容錯機制,也就是說,如果基於Dubbo進行服務間通信出現異常,服務消費者會對服務提供者集群中其他的節點發起重試,確保這次請求成功,默認的額外重試次數是2次。

除此之外,Dubbo還提供了更多的容錯策略,我們可以根據不同的業務場景來進行選擇。

  1. 快速失敗策略,服務消費者只發起一次請求,如果請求失敗,就直接把錯誤拋出去。這種比較適合在非冪等性場景中使用
  2. 失敗安全策略,如果出現服務通信異常,直接把這個異常吞掉不做任何處理
  3. 失敗自動恢復策略,后台記錄失敗請求,然后通過定時任務來對這個失敗的請求進行重發。
  4. 並行調用多個服務策略,就是把這個消息廣播給服務提供者集群,只要有任何一個節點返回,就表示請求執行成功。
  5. 廣播調用策略,逐個調用服務提供者集群,只要集群中任何一個節點出現異常,就表示本次請求失敗

要注意的是,默認基於重試策略的容錯機制中,需要注意冪等性的處理,否則在事務型的操作中,容易出現多次數據變更的問題。

以上就是我對這個問題的理解!

總結

這類的問題,並不需要去花太多時間去背,如果你對於整個技術體系有一定的了解,你就很容易想象到最基本的處理方式。

即便是你對Dubbo不熟悉,也能回答一兩種!

OK,本期的普通人VS高手面試系列就到這里結束了,喜歡的朋友記得點贊收藏。

另外,我也陸續收到了很多小伙伴的面試題,我會在后續的內容中逐步更新給到大家!

我是Mic,一個工作了14年的Java程序員,咱們下篇文章再見。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM