前言

Dubbo 的定位是分布式服務(wù)框架,為了避免單點(diǎn)壓力過(guò)大,服務(wù)的提供者通常部署多臺(tái),如何從服務(wù)提供者集群中選取一個(gè)進(jìn)行調(diào)用,就依賴(lài)于Dubbo的負(fù)載均衡策略。

Dubbo 負(fù)載均衡策略

Dubbo 負(fù)載均衡策略提供下列四種方式:

  1. Random LoadBalance 隨機(jī),按權(quán)重設(shè)置隨機(jī)概率。 Dubbo的默認(rèn)負(fù)載均衡策略
    在一個(gè)截面上碰撞的概率高,但調(diào)用量越大分布越均勻,而且按概率使用權(quán)重后也比較均勻,有利于動(dòng)態(tài)調(diào)整提供者權(quán)重。

  2. RoundRobin LoadBalance 輪循,按公約后的權(quán)重設(shè)置輪循比率。
    存在慢的提供者累積請(qǐng)求問(wèn)題,比如:第二臺(tái)機(jī)器很慢,但沒(méi)掛,當(dāng)請(qǐng)求調(diào)到第二臺(tái)時(shí)就卡在那,久而久之,所有請(qǐng)求都卡在調(diào)到第二臺(tái)上。

  3. LeastActive LoadBalance 最少活躍調(diào)用數(shù),相同活躍數(shù)的隨機(jī),活躍數(shù)指調(diào)用前后計(jì)數(shù)差。
    使慢的提供者收到更少請(qǐng)求,因?yàn)樵铰奶峁┱叩恼{(diào)用前后計(jì)數(shù)差會(huì)越大。

  4. ConsistentHash LoadBalance 一致性Hash,相同參數(shù)的請(qǐng)求總是發(fā)到同一提供者。
    當(dāng)某一臺(tái)提供者掛時(shí),原本發(fā)往該提供者的請(qǐng)求,基于虛擬節(jié)點(diǎn),平攤到其它提供者,不會(huì)引起劇烈變動(dòng)。

源碼

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式