dubbo學習筆記

Dubbo的啓動方式

依賴容器(Tomcat)git

使用main方法web

使用內置的main方法spring

Dubbo控制檯和監控臺配置

配置控制檯api

 

查看maven的版本信息安全

執行源碼的編譯和打包操做服務器

最後編譯結果爲以下,表示成功了。app

 

部署dubbo管控臺負載均衡

一、在打包後的application.properties文件中修改對應配置信息dom

 

二、部署dubbo控制檯異步

經過localhost:7001 訪問控制檯 (默認帳號和密碼相同)

配置監控臺

一、找到這個目錄下面對應文件

 

二、解壓這個.gz文件,進行相應的配置

 

三、啓動監控臺(經過start.bat/start.sh啓動)

 

四、解決操做的過程的數據不可以顯示到監控臺的問題?

在每個服務的配置文件中添加一句配置

 

服務檢查

 

表示啓動的時候不作檢查依賴,主要用於服務的循環依賴的實例 check設置爲false,check默認爲true

 

多協議支持

dubbo (默認) ,長鏈接協議 【操做過程當中數據量比較小的傳輸】,不適用視頻,大文件等傳輸操做。

hessian 短鏈接協議(傳輸數據量比較大狀況,在項目開發中會針對不一樣流量來進行協議的設定)

一、引入依賴

<dependency>
  <groupId>com.caucho</groupId>
  <artifactId>hessian</artifactId>
  <version>4.0.7</version>
</dependency>

<dependency>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty</artifactId>
  <version>6.1.26</version>
</dependency>

二、在對應配置文件添加協議

<dubbo:protocol name="hessian" port="20999"/>

webservice

rmi

http

thirft

一個服務一個協議

一個服務多個協議

多註冊中心

多版本支持

消費端指定不一樣的版本號

消費端異步調用(只支持Dubbo協議)

### RpcContext.getContext().getFuture(); 獲取異步對象

public static void main( String[] args ) throws InterruptedException, ExecutionException {
       ApplicationContext
               context = new ClassPathXmlApplicationContext("spring/application-consumer.xml");
       ApiDemoTest demoTest = (ApiDemoTest) context.getBean("apiDemoTest");
       String admin = demoTest.login("admin", "123");
       Future<String> future = RpcContext.getContext().getFuture();
       System.out.println("main:" + admin);
       System.out.println("結果:"+future.get()); // 阻塞等待結果
       System.out.println("=========");

  }

 

主機綁定問題(解決註冊中心上面註冊的是服務器名稱問題)

ServiceConfig-> findConfigedHosts的源碼

PC: Gerry-PC:8080/ => 192.168.3.22:8080

直連/服務只訂閱/服務只註冊(針對測試)[開發環境]

服務只訂閱:

場景: 咱們開發中服務在測試的時候不能直接註冊到註冊中心。

 

一、在服務端的的配置中

二、在消費端經過在dubbo:references 配置以下:

 

服務只註冊:

場景: 註冊中心的服務只對內部服務提供訂閱,外部服務訂閱不了。

服務端配置:

 

負載均衡(配置實現)

RandomLoadBalance -> random  隨機負載均衡 (默認的)
RoundRobinLoadBalance -> roundrobin   輪詢負載均衡
LeastActiveLoadBalance -> leastactive 最小響應時間負載均衡
ConsistentHashLoadBalance -> consistenthash 一致性hash負載均衡

消費端配置負載均衡策略

 

服務調用超時問題

一、建議開發的服務都設置重試次數和超時時間。

 

集羣容錯

Failover cluster 失敗的時候將自動切換並重試其餘的服務器。經過 retries=2 來設置重試的次數

Failfast cluster 快速失敗,只發起一次調用;寫操做,好比新增記錄,非冪等請求。

Failsafe cluster 失敗安全,出現異常信息,直接忽略異常。主要用於日誌操做出現異常狀況。

Failback cluster 失敗自動恢復,後臺記錄失敗請求,定時重發這個信息(消息推送)

Forking cluster 並行調用多個服務,只要一個成功就返回,只應用在讀數據的時候。

BroadCast cluster 廣播調用全部服務提供者,逐個調用,只要有一個報錯就返回異常

 

消費端作以下的配置便可:

 

Dubbo源碼結構:

 

 

代碼示例:

https://gitee.com/lm970585581/code_base/tree/master/dubbo%E4%BD%BF%E7%94%A8XML%E9%85%8D%E7%BD%AE%E4%BB%A3%E7%A0%81

 

https://gitee.com/lm970585581/code_base/tree/master/%E7%BA%AF%E6%B3%A8%E8%A7%A3Dubbo%E6%96%B9%E5%BC%8F

相關文章
相關標籤/搜索