日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dubbo调用失败策略_面试官:dubbo负载均衡策略,集群容错策略,动态代理策略有哪些...

發布時間:2024/8/5 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dubbo调用失败策略_面试官:dubbo负载均衡策略,集群容错策略,动态代理策略有哪些... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面試官心理分析

繼續深問吧,這些都是用 dubbo 必須知道的一些東西,你得知道基本原理,知道序列化是什么協議,還得知道具體用 dubbo 的時候,如何負載均衡,如何高可用,如何動態代理。

說白了,就是看你對 dubbo 熟悉不熟悉:

  • dubbo 工作原理:服務注冊、注冊中心、消費者、代理通信、負載均衡;
  • 網絡通信、序列化:dubbo 協議、長連接、NIO、hessian 序列化協議;
  • 負載均衡策略、集群容錯策略、動態代理策略:dubbo 跑起來的時候一些功能是如何運轉的?怎么做負載均衡?怎么做集群容錯?怎么生成動態代理?
  • dubbo SPI 機制:你了解不了解 dubbo 的 SPI 機制?如何基于 SPI 機制對 dubbo 進行擴展?

面試題剖析

dubbo 負載均衡策略

RandomLoadBalance

默認情況下,dubbo 是 RandomLoadBalance ,即隨機調用實現負載均衡,可以對 provider 不同實例設置不同的權重,會按照權重來負載均衡,權重越大分配流量越高,一般就用這個默認的就可以了。

RoundRobinLoadBalance

這個的話默認就是均勻地將流量打到各個機器上去,但是如果各個機器的性能不一樣,容易導致性能差的機器負載過高。所以此時需要調整權重,讓性能差的機器承載權重小一些,流量少一些。

舉個栗子。

跟運維同學申請機器,有的時候,我們運氣好,正好公司資源比較充足,剛剛有一批熱氣騰騰、剛剛做好的虛擬機新鮮出爐,配置都比較高:8 核 + 16G 機器,申請到 2 臺。過了一段時間,我們感覺 2 臺機器有點不太夠,我就去找運維同學說,“哥兒們,你能不能再給我一臺機器”,但是這時只剩下一臺 4 核 + 8G 的機器。我要還是得要。

這個時候,可以給兩臺 8 核 16G 的機器設置權重 4,給剩余 1 臺 4 核 8G 的機器設置權重 2。

LeastActiveLoadBalance

這個就是自動感知一下,如果某個機器性能越差,那么接收的請求越少,越不活躍,此時就會給不活躍的性能差的機器更少的請求

ConsistentHashLoadBalance

一致性 Hash 算法,相同參數的請求一定分發到一個 provider 上去,provider 掛掉的時候,會基于虛擬節點均勻分配剩余的流量,抖動不會太大。如果你需要的不是隨機負載均衡,是要一類請求都到一個節點,那就走這個一致性 Hash 策略。

關于 dubbo 負載均衡策略更加詳細的描述,可以查看官網 http://dubbo.apache.org/zh-cn/docs/source_code_guide/loadbalance.html 。

dubbo 集群容錯策略

Failover Cluster 模式

失敗自動切換,自動重試其他機器,默認就是這個,常見于讀操作。(失敗重試其它機器)

可以通過以下幾種方式配置重試次數:

或者

或者

Failfast Cluster 模式

一次調用失敗就立即失敗,常見于非冪等性的寫操作,比如新增一條記錄(調用失敗就立即失敗)

Failsafe Cluster 模式

出現異常時忽略掉,常用于不重要的接口調用,比如記錄日志。

配置示例如下:

或者

Failback Cluster 模式

失敗了后臺自動記錄請求,然后定時重發,比較適合于寫消息隊列這種。

Forking Cluster 模式

并行調用多個 provider,只要一個成功就立即返回。常用于實時性要求比較高的讀操作,但是會浪費更多的服務資源,可通過 forks="2" 來設置最大并行數。

Broadcast Cluster 模式

逐個調用所有的 provider。任何一個 provider 出錯則報錯(從 2.1.0 版本開始支持)。通常用于通知所有提供者更新緩存或日志等本地資源信息。

關于 dubbo 集群容錯策略更加詳細的描述,可以查看官網 http://dubbo.apache.org/zh-cn/docs/source_code_guide/cluster.html 。

dubbo 動態代理策略

默認使用 javassist 動態字節碼生成,創建代理類。但是可以通過 spi 擴展機制配置自己的動態代理策略。

原文:https://github.com/doocs/advanced-java/blob/master/docs/distributed-system/dubbo-load-balancing.md

總結

以上是生活随笔為你收集整理的dubbo调用失败策略_面试官:dubbo负载均衡策略,集群容错策略,动态代理策略有哪些...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。