Dubbo應用架構

- (init)在Dubbo容器Container中啟動start容器上的提供者Provider
- (init)提供者Provider注冊register服務到注冊中心Registry
- (init)消費者Consumer從注冊中心Registry訂閱subscribe服務
- (async)注冊中心Registry給消費者Consumer通知notify
- (sync)消費者Consumer呼叫invoke服務提供者Provider
- (async)監控中心Monitor監控服務消費者Consumer和服務提供者Provider的使用情況,統計count服務請求次數
Dubbo負載均衡
- 在集群負載均衡時,Dubbo提供多種負載均衡策略,預設為random隨機呼叫, 也可以自定義負載據均衡策略
負載均衡策略
Random LoadBalance
- 隨機負載均衡呼叫: 按權重設定隨機概率
- 在一個界面上碰撞的概率越高,但呼叫量越大分布越均勻,而且按概率使用權重后也比較均勻,有利于動態調整提供者權重
RoundRobin LoadBalance
- 輪詢負載均衡呼叫: 按公約后的權重設定輪詢比率
- 存在慢的提供者累積請求的問題:當第二臺機器很慢但沒有掛掉,當請求第二臺時就會卡在那,導致所有請求都卡在第二臺上
LeastActive LoadBalance
- 最少活躍呼叫數負載均衡呼叫: 相同活躍數的隨機,活躍數指呼叫前后計數差
- 使慢的提供者收到更少的請求數,因為越慢的提供者的呼叫前后計數差越大
ConsistentHash LoadBalance
- 一致性Hash負載均衡呼叫: 相同的引數請求總是發送到同一提供者
- 當某一臺提供者掛掉時原本發往該提供者的請求,基于虛擬節點,平攤到其它提供者,不會引起劇烈變動
- 預設只對第一個引數Hash,如果要修改,配置
<dubbo:parameter key="hash.arguments" value="https://www.cnblogs.com/chova/p/0,1">
- 預設用160份虛擬節點,如果要修改,配置
<dubbo:parameter key="hash.nodes" value="https://www.cnblogs.com/chova/p/320"/>
負載均衡配置
- 服務端服務級別
<dubbo:service interface="介面類" loadbalance="roundrobin" />
- 客戶端服務級別
<dubbo:reference interface="介面類" loadbalance="roundrobin" />
- 服務端方法級別
<dubbo:service interface="介面類">
<dubbo:method name="方法" loadbalance="roundrobin" />
</dubbo:service >
- 客戶端方法級別
<dubbo:reference interface="介面類">
<dubbo:method name="方法" loadbbalance="roundrobin">
</dubbo:reference>

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/286001.html
標籤:架構設計
