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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

3.dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?

發(fā)布時(shí)間:2024/9/5 编程问答 33 如意码农
生活随笔 收集整理的這篇文章主要介紹了 3.dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:中華石杉

面試題

dubbo 負(fù)載均衡策略和集群容錯(cuò)策略都有哪些?動(dòng)態(tài)代理策略呢?

面試官心理分析

繼續(xù)深問(wèn)吧,這些都是用 dubbo 必須知道的一些東西,你得知道基本原理,知道序列化是什么協(xié)議,還得知道具體用 dubbo 的時(shí)候,如何負(fù)載均衡,如何高可用,如何動(dòng)態(tài)代理。

說(shuō)白了,就是看你對(duì) dubbo 熟悉不熟悉:

  • dubbo 工作原理:服務(wù)注冊(cè)、注冊(cè)中心、消費(fèi)者、代理通信、負(fù)載均衡;
  • 網(wǎng)絡(luò)通信、序列化:dubbo 協(xié)議、長(zhǎng)連接、NIO、hessian 序列化協(xié)議;
  • 負(fù)載均衡策略、集群容錯(cuò)策略、動(dòng)態(tài)代理策略:dubbo 跑起來(lái)的時(shí)候一些功能是如何運(yùn)轉(zhuǎn)的?怎么做負(fù)載均衡?怎么做集群容錯(cuò)?怎么生成動(dòng)態(tài)代理?
  • dubbo SPI 機(jī)制:你了解不了解 dubbo 的 SPI 機(jī)制?如何基于 SPI 機(jī)制對(duì) dubbo 進(jìn)行擴(kuò)展?

面試題剖析

dubbo 負(fù)載均衡策略

random loadbalance

默認(rèn)情況下,dubbo 是 random load balance ,即隨機(jī)調(diào)用實(shí)現(xiàn)負(fù)載均衡,可以對(duì) provider 不同實(shí)例設(shè)置不同的權(quán)重,會(huì)按照權(quán)重來(lái)負(fù)載均衡,權(quán)重越大分配流量越高,一般就用這個(gè)默認(rèn)的就可以了。

roundrobin loadbalance

這個(gè)的話默認(rèn)就是均勻地將流量打到各個(gè)機(jī)器上去,但是如果各個(gè)機(jī)器的性能不一樣,容易導(dǎo)致性能差的機(jī)器負(fù)載過(guò)高。所以此時(shí)需要調(diào)整權(quán)重,讓性能差的機(jī)器承載權(quán)重小一些,流量少一些。

舉個(gè)栗子。

跟運(yùn)維同學(xué)申請(qǐng)機(jī)器,有的時(shí)候,我們運(yùn)氣好,正好公司資源比較充足,剛剛有一批熱氣騰騰、剛剛做好的虛擬機(jī)新鮮出爐,配置都比較高:8 核 + 16G 機(jī)器,申請(qǐng)到 2 臺(tái)。過(guò)了一段時(shí)間,我們感覺(jué) 2 臺(tái)機(jī)器有點(diǎn)不太夠,我就去找運(yùn)維同學(xué)說(shuō),“哥兒們,你能不能再給我一臺(tái)機(jī)器”,但是這時(shí)只剩下一臺(tái) 4 核 + 8G 的機(jī)器。我要還是得要。

這個(gè)時(shí)候,可以給兩臺(tái) 8 核 16G 的機(jī)器設(shè)置權(quán)重 4,給剩余 1 臺(tái) 4 核 8G 的機(jī)器設(shè)置權(quán)重 2。

leastactive loadbalance

這個(gè)就是自動(dòng)感知一下,如果某個(gè)機(jī)器性能越差,那么接收的請(qǐng)求越少,越不活躍,此時(shí)就會(huì)給不活躍的性能差的機(jī)器更少的請(qǐng)求。

consistanthash loadbalance

一致性 Hash 算法,相同參數(shù)的請(qǐng)求一定分發(fā)到一個(gè) provider 上去,provider 掛掉的時(shí)候,會(huì)基于虛擬節(jié)點(diǎn)均勻分配剩余的流量,抖動(dòng)不會(huì)太大。如果你需要的不是隨機(jī)負(fù)載均衡,是要一類請(qǐng)求都到一個(gè)節(jié)點(diǎn),那就走這個(gè)一致性 Hash 策略。

dubbo 集群容錯(cuò)策略

failover cluster 模式

失敗自動(dòng)切換,自動(dòng)重試其他機(jī)器,默認(rèn)就是這個(gè),常見(jiàn)于讀操作。(失敗重試其它機(jī)器)

可以通過(guò)以下幾種方式配置重試次數(shù):

<dubbo:service retries="2" />

或者

<dubbo:reference retries="2" />

或者

<dubbo:reference>
<dubbo:method name="findFoo" retries="2" />
</dubbo:reference>

failfast cluster 模式

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

failsafe cluster 模式

出現(xiàn)異常時(shí)忽略掉,常用于不重要的接口調(diào)用,比如記錄日志。

配置示例如下:

<dubbo:service cluster="failsafe" />

或者

<dubbo:reference cluster="failsafe" />

failback cluster 模式

失敗了后臺(tái)自動(dòng)記錄請(qǐng)求,然后定時(shí)重發(fā),比較適合于寫(xiě)消息隊(duì)列這種。

forking cluster 模式

并行調(diào)用多個(gè) provider,只要一個(gè)成功就立即返回。常用于實(shí)時(shí)性要求比較高的讀操作,但是會(huì)浪費(fèi)更多的服務(wù)資源,可通過(guò) forks="2" 來(lái)設(shè)置最大并行數(shù)。

broadcacst cluster

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

dubbo動(dòng)態(tài)代理策略

默認(rèn)使用 javassist 動(dòng)態(tài)字節(jié)碼生成,創(chuàng)建代理類。但是可以通過(guò) spi 擴(kuò)展機(jī)制配置自己的動(dòng)態(tài)代理策略。

總結(jié)

以上是生活随笔為你收集整理的3.dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。