dubbo負載均衡策略
random loadbalance
默認情況下,dubbo是random load balance隨機調用實現負載均衡,可以對provider不同實例設置不同的權重,會按照權重來負載均衡,權重越大分配流量越高,一般就用這個默認的就可以了。
roundrobin loadbalance
均勻地將流量打到各個機器上去,但是如果各個機器的性能不一樣,容易導致性能差的機器負載過高。所以此時需要調整權重,讓性能差的機器承載權重小一些,流量少一些。
leastactive loadbalance
這個就是自動感知一下,如果某個機器性能越差,那么接收的請求越少,越不活躍,此時就會給不活躍的性能差的機器更少的請求
consistanthash loadbalance
一致性Hash算法,相同參數的請求一定分發到一個provider上去,provider掛掉的時候,會基于虛擬節點均勻分配剩余的流量,抖動不會太大。如果你需要的不是隨機負載均衡,是要一類請求都到一個節點,那就走這個一致性hash策略。
dubbo集群容錯策略
failover cluster模式
失敗自動切換,自動重試其他機器,默認就是這個,常見于讀操作
failfast cluster模式
一次調用失敗就立即失敗,常見于寫操作
failsafe cluster模式
出現異常時忽略掉,常用于不重要的接口調用,比如記錄日志
failbackc cluster模式
失敗了后臺自動記錄請求,然后定時重發,比較適合于寫消息隊列這種
forking cluster
并行調用多個provider,只要一個成功就立即返回
broadcacst cluster
逐個調用所有的provider