dubbo開發篇 啟動檢測,集群容錯,配置直連

2021-08-19 16:15:47 字數 1491 閱讀 4068

(1)在開發及測試環境下,可以繞過註冊中心,只測試指定服務提供者,點對點直連。

(2)check表示是否啟動檢測。若true那麼啟動的時候回去註冊中心找對應的服務,若服務不存在那麼停止spring啟動,直接報錯,

(3)集群容錯

在集群呼叫失敗時,dubbo 提供了多種容錯方案,預設為 failover 重試。

failover cluster: 失敗自動切換,當出現失敗,重試其它伺服器 1。通常用於讀操作,但重試會帶來更長延遲。可通過 retries="2" 來設定重試次數(不含第一次)。

failfast cluster:快速失敗,只發起一次呼叫,失敗立即報錯。通常用於非冪等性的寫操作,比如新增記錄。

failsafe cluster:失敗安全,出現異常時,直接忽略。通常用於寫入審計日誌等操作。

failback cluster:失敗自動恢復,後台記錄失敗請求,定時重發。通常用於訊息通知操作。

forking cluster:並行呼叫多個伺服器,只要乙個成功即返回。通常用於實時性要求較高的讀操作,但需要浪費更多服務資源。可通過 forks="2" 來設定最大並行數。

broadcast cluster:廣播呼叫所有提供者,逐個呼叫,任意一台報錯則報錯 2。通常用於通知所有提供者更新快取或日誌等本地資源資訊。

(4)負載均衡

在集群負載均衡時,dubbo 提供了多種均衡策略,預設為 random 隨機呼叫。

random loadbalance:隨機,按權重設定隨機概率。在乙個截面上碰撞的概率高,但呼叫量越大分布越均勻,而且按概率使用權重後也比較均勻,有利於動態調整提供者權重。

roundrobin loadbalance:輪循,按公約後的權重設定輪循比率。存在慢的提供者累積請求的問題,比如:第二台機器很慢,但沒掛,當請求調到第二台時就卡在那,久而久之,所有請求都卡在調到第二台上。

leastactive loadbalance:最少活躍呼叫數,相同活躍數的隨機,活躍數指呼叫前後計數差,慢的提供者收到更少請求,因為越慢的提供者的呼叫前後計數差會越大 

consistenthash loadbalance:一致性 hash,相同引數的請求總是發到同一提供者,當某一台提供者掛時,原本發往該提供者的請求,基於虛擬節點,平攤到其它提供者,不會引起劇烈變動。

(5)dubbo協議

連線個數:單連線

連線方式:長連線

傳輸協議:tcp

傳輸方式:nio非同步傳輸

序列化:hessian二進位制序列化

適用範圍:傳入傳出引數資料報較小(建議小於100k),消費者比提供者個數多,單一消費者無法壓滿提供者,盡量不要用dubbo協議傳輸大檔案或超大字串。

適用場景:常規遠端服務方法呼叫

(5)dubbo只訂閱,只註冊

-->    

只註冊如果有兩個映象環境,兩個註冊中心,有乙個服務只在其中乙個註冊中心有部署,另乙個註冊中心還沒來得及部署,

而兩個註冊中心的其它應用都需要依賴此服務。這個時候,可以讓服務提供者方只註冊服務到另一註冊中心,而不從另一註冊中心訂閱服務。

Dubbo服務啟動方式

啟動dubbo服務有2個方式 1 通過xml檔案配置 2 通過註解來實現,類似於spring。1 通過註解方式的服務實現類 package com.dubbo.provide import com.alibaba.dubbo.config.annotation.service service pub...

dubbo開源技術 推薦篇

dubbo 是阿里巴巴開發用來用來治理服務中介軟體,資源排程和治理中心的管理工具。provider 暴露服務的服務提供方 service 服務層 consumer 呼叫遠端服務的服務消費方 web 表現層 registry 服務註冊與發現的註冊中心 zookeeper monitor 統計服務的呼叫...

Dubbo高階篇 12 dubbo服務只註冊

問題 如果有兩個映象環境,兩個註冊中心,有乙個服務只在其中乙個註冊中心有部署,另乙個註冊中心還沒來得及部署,而兩個註冊中心的其它應用都需要依賴此服務,所以需要將服務同時註冊到兩個註冊中心,但卻不能讓此服務同時依賴兩個註冊中心的其它服務。解決方案 可以讓服務提供者方,只註冊服務到另一註冊中心,而不從另...