深入dubbo(四)配置參考

2021-08-10 05:29:24 字數 2544 閱讀 7898

配置項分為三大類:服務發現:表示該配置項用於服務的註冊與發現,目的是讓消費方找到提供方。服務治理:表示該配置項用於治理服務間的關係,或為開發測試提供便利條件。效能調優:表示該配置項用於調優效能,不同的選項對效能會產生影響。
注意:只有 group,inte***ce,version 是服務的匹配條件,三者決定是不是同乙個服務,其它配置項均為調優和治理引數。

使用標籤 reference consumer registry

xml配置法

配置檔案

dubbo.reference.com.foo.barservice.check=false

dubbo.reference.check=false

dubbo.consumer.check=false

dubbo.registry.check=false

dubbo 缺省會在啟動時檢查依賴的服務是否可用,可以通過 check="false"關閉檢查(有些服務不關心,或者出現了迴圈依賴,必須有一方先啟動,

spring 容器是懶載入的,或者通過 api 程式設計延遲引用服務)

1.預設failover cluster

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

2.failfast cluster

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

3.failsafe cluster

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

4.failback cluste

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

5.forking clu

ster

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

6.broadcast clus

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

7.集群模式配置

以上六種按照以下示例在服務提供方和消費方配置集群模式

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

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

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

consistenthash loadbalance一致性 hash,相同引數的請求總是發到同一提供者。

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

配置方法

服務端服務級別

客戶端服務級別

服務端方法級別

客戶端方法級別

對於dubbo的服務提供者,主要有兩種執行緒池,一種是io處理執行緒池,另一種是服務呼叫執行緒池。而作為io處理執行緒池,由於dubbo基於mina、grizzly和netty框架做io元件,io執行緒池都是基於這些框架來配置,比如netty中的boss和worker執行緒池,dubbo選擇的是「無邊界」的cachedthreadpool,這意味著對所有服務請求先做到「來者不拒」,但它進一步限制了io處理的執行緒數,預設是核數+1

如果事件處理的邏輯能迅速完成,並且不會發起新的 io 請求,比如只是在記憶體中記個標識,則直接在 io 執行緒上處理更快,如果事件處理邏輯較慢,或者需要發起新的io請求,比如需要查詢資料庫,則必須派發到io執行緒池中

dispatcher

threadpool

在開發及測試環境下,經常需要繞過註冊中心,只測試指定服務提供者,這時候可能需要點對點直連

點對點,可在 中配置 url 指向提供者,將繞過註冊中心,多個位址用分號隔開

Dubbo入門使用(四) Dubbo配置

1 dubbo屬性載入 1 參照dubbo官方文件 配置 xml配置 dubbo服務在啟動時,可以新增虛擬機器引數,並會優先生效 如 2 配置 屬性配置 2 示例 啟動時檢查 dubbo啟動時會檢查它所需要消費的服務是不是已經存在註冊中心裡面,如果沒有,就會保錯。預設check true 可以通過c...

Dubbo 深入理解

一.dubbo簡介 1 是什麼 是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服務治理方案。2 做什麼 3 四大特性 二.dubbo架構1 流程圖 節點角色說明 呼叫關係說明 2 配置方式 1 配置方式 xml 用於配置連線監控中心相關資訊,可選 協議配置由提供方...

dubbo深入理解(1)

1.dubbo是什麼?dubbo是乙個服務框架,為了便於理解,舉乙個例子 有一天,多啦a夢要去4s店買車,售車員會給我們提供一些車的型別 包括進口還是國產,賓士還是寶馬,50萬還是100萬 然後加入我們要買的是 進口寶馬100萬,然後我們把這個告訴給售車員,售車員在他們的售車系統上按照我們的條件進行...