Java面試題分享 Dubbo

2021-09-24 13:51:44 字數 1575 閱讀 1084

問:dubbo通訊協議問:dubbo的註冊中心

答:1)multicast 註冊中心

2)zookeeper 註冊中心

3)redis 註冊中心

4)****** 註冊中心

問:dubbo的集群容錯

答:1)failover cluster

失敗自動切換,當出現失敗,重試其它伺服器

通常用於讀操作,但重試會帶來更長延遲

可通過retries="2"來設定重試次數(不含第一次)

2)failfast cluster

快速失敗,只發起一次呼叫,失敗立即報錯。

通常用於非冪等性的寫操作,比如新增記錄。

3)failsafe cluster

失敗安全,出現異常時,直接忽略,通常用於寫入審計日誌等操作

4)failback cluster

失敗自動恢復,後台記錄失敗請求,定時重發,通常用於訊息通知操作

5)forking cluster

並行呼叫多個伺服器,只要乙個成功即返回

通常用於實時性要求較高的讀操作

但需要浪費更多服務資源

可通過 forks=「2」 來設定最大並行數。

6)broadcast cluster

廣播呼叫所有提供者,逐個呼叫,任意一台報錯則報錯

通常用於通知所有提供者更新快取或日誌等本地資源資訊

問:dubbo中zookeeper做註冊中心,如果註冊中心集群都掛掉,發布者和訂閱者之間還能通訊麼問:dubbo連線註冊中心和直連的區別

答:在開發及測試環境下,經常需要繞過註冊中心,只測試指定服務提供者,這時候可能需要點對點直連,點對點直聯方式,將以服務介面為單位,

忽略註冊中心的提供者列表,服務註冊中心動態的註冊和發現服務。

問:dubbo在安全機制方面是如何解決的

答:dubbo通過token令牌防止使用者繞過註冊中心直連,然後在註冊中心上管理授權,dubbo還提供服務黑白名單,來控**務所允許的呼叫方。

問:dubbo集群中的負載均衡策略

答:random loadbalance

隨機,按權重設定隨機概率,在乙個截面上碰撞的概率高,但呼叫量越大分布越均勻

roundrobin loadbalance

輪循,按公約後的權重設定輪循比率

存在慢的提供者累積請求問題

比如:第二台機器很慢

但沒掛,當請求調到第二台時就卡在那

久而久之,所有請求都卡在調到第二台上

leastactive loadbalance

最少活躍呼叫數,相同活躍數的隨機,活躍數指呼叫前後計數差

使慢的提供者收到更少請求,因為越慢的提供者的呼叫前後計數差會越大。

consistenthash loadbalance

一致性hash,相同引數的請求總是發到同一提供者

當某一台提供者掛時,原本發往該提供者的請求,基於虛擬節點

平攤到其它提供者,不會引起劇烈變動

Java面試題分享 servlet

問 servlet的生命週期 答 當伺服器啟動的時候生命週期開始,然後通過init 方法初始化servlet,再根據不同請求呼叫doget或dopost方法,最後再通過destroy 方法進行銷毀。問 get和post的區別問 如何處理servlet的執行緒不安全問題 答 最簡單的就是不使用不去使用...

Java面試題分享 Mybatis

問 在mybatis中,有兩種佔位符,區別是什麼 答 解析傳遞進來的引數資料,katex parse error expected eof got at position 21 進來的引數原樣拼接在sql中,是預編譯處理,是字串替換,使用 可以有效的防止sql注入,提高系統安全性。問 當實體類中的屬...

Dubbo面試題總結

dubbo的執行流程 dubbo的安全性如何得到保障 a.在有註冊中心的情況下,可以通過dubbbo admin中的路由規則,來指定固定ip的消費方來訪問 b.在直連的情況下,通過在服務的提供方中設定密碼 令牌 token,消費方需要在消費時也輸入這 個密碼,才能夠正確使用。dubbo新增服務ip白...