分佈式的幾件小事(四)dubbo負載均衡策略和集羣容錯策略

1.dubbo負載均衡策略

random loadbalance 策略
默認狀況下,dubbo是random loadbalance 隨機調用實現負載均衡,能夠對provider不一樣實例設置不一樣的權重,會按照權重來進行負載均衡,權重越大分配的流量越高,通常就用這個默認的就能夠了。java

roundrobin loadbalance策略
這個策略默認會將請求均勻的分佈到各個provider上面,可是若是各個機器的性能不同,很容易到杭州性能差 的機器負載太高。算法

leastactive loadbalance策略
自動感知機器性能,若是某個機器性能差,那麼這個機器接收到的請求就會越少。接收到的請求越少,機器就越不活躍,那麼不活躍的機器就會接到更少的請求。負載均衡

consistanthash loadbalance策略
一致性hash算法,相同參數的請求必定發送到同一個provider上面去,provider掛掉的時候,會基於虛擬節點均勻分配剩餘的請求,抖動不會太大。dom

2.dubbo的集羣容錯策略

failover cluster策略
調用一個provider失敗,自動切換到其餘的provider上面去調用,默認策略,常見於讀操做。ide

failfast cluster策略
一次調用provider失敗就當即失敗,常見於寫操做。性能

failsafe cluster策略
出現異常時忽略掉,常見於不重要的接口調用,好比日誌記錄。代理

faliback cluster策略
失敗後後臺自動記錄請求,而後定時重發,比較適合寫消息隊列這種操做。日誌

forking cluster策略
並行調用多個provider,只要有一個成功就當即返回。接口

broadcast cluster策略
逐個調用全部的provider。隊列

3.dubbo的動態代理策略

默認使用javassist動態字節碼生成,建立代理類。 能夠經過spi機制擴展配置本身的動態代理策略。

相關文章
相關標籤/搜索