分散式專題(五)dubbo
https://blog.csdn.net/q975583865/article/category/7287386
dubbo生產者消費者程式碼demo
連結:https://pan.baidu.com/s/1fVvxAl42-b-oS5miZs548g 密碼:g0nf
啟動服務檢查
如果提供方沒有啟動的時候,預設會去檢測所依賴的服務是否正常提供服務
如果check為false,表示啟動的時候不去檢查。當服務出現迴圈依賴的時候,check設定成false
dubbo:reference 屬性: check 預設值是true 、false
dubbo:consumer check=”false” 沒有服務提供者的時候,報錯
dubbo:registry check=false 註冊訂閱失敗報錯
dubbo:provider
多協議支援
dubbo支援的協議: dubbo、RMI、hessian、webservice、http、Thrift
hessian協議演示
1.引入jar包
<dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.38</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <version>6.1.26</version> </dependency>
2.修改provider.xml
3.指定service服務的協議版本號
4.消費端改造
多註冊中心支援
略
多版本支援
客戶端呼叫的時候
非同步呼叫
async="true"表示介面非同步返回
hessian協議,使用async非同步回撥會報錯
dubbo服務只訂閱
dubbo服務只註冊
只提供服務
<dubbo:registry subscribe="false"/>
負載均衡
在叢集負載均衡時,Dubbo提供了多種均衡策略,預設為random隨機呼叫。可以自行擴充套件負載均衡策略
Random LoadBalance
隨機,按權重設定隨機概率。
在一個截面上碰撞的概率高,但呼叫量越大分佈越均勻,而且按概率使用權重後也比較均勻,有利於動態調整提供者權重。
RoundRobin LoadBalance
輪循,按公約後的權重設定輪循比率。
存在慢的提供者累積請求的問題,比如:第二臺機器很慢,但沒掛,當請求調到第二臺時就卡在那,久而久之,所有請求都卡在調到第二臺上。
LeastActive LoadBalance
最少活躍呼叫數,相同活躍數的隨機,活躍數指呼叫前後計數差。
使慢的提供者收到更少請求,因為越慢的提供者的呼叫前後計數差會越大。
ConsistentHash LoadBalance
一致性Hash,相同引數的請求總是發到同一提供者。
當某一臺提供者掛時,原本發往該提供者的請求,基於虛擬節點,平攤到其它提供者,不會引起劇烈變動。