1. 程式人生 > >分散式專題(五)dubbo

分散式專題(五)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,相同引數的請求總是發到同一提供者。

當某一臺提供者掛時,原本發往該提供者的請求,基於虛擬節點,平攤到其它提供者,不會引起劇烈變動。