dubbo配置檔案解析

2021-07-31 03:08:34 字數 3605 閱讀 6843

(1)

用於服務提供方暴露服務位置

例子:[html]view plain

copy

<

beanid=

"bzcommitservice"

class

="provider.bzcommitserviceimpl"

/>

<

dubbo:service

inte***ce

="domain.ibzcommitservice"

ref=

"bzcommitservice"

cluster

="failfast"

loadbalance

="leastactive"

version

="1.0.0"

delay

="-1"

connections

="1000"

timeout

="180000"

>

dubbo:service

>

1.inte***ce

服務實現的介面名稱

2.ref

指向真正的服務實現類,已經在spring中定義了

3.version

服務的版本

4.delay

表示延遲註冊時間,也就是什麼時候暴露服務,-1表示spring容器初始化完成時暴露服務(所以通常為-1)

5.timeout

遠端服務呼叫超時時間(毫秒),預設為1000

6.connections

對每個提供者的最大連線數,rmi\http\hessian等短連線協議表示限制連線數,dubbo等長連線協議表示建立的長連線個數

7.loadbalance

負載均衡策略,也就是說同乙個服務有多個提供者時,客戶端如何選擇提供者

1)random

隨機分配,並且可以給提供者設定權重

2)roundrobin

輪詢,也就是乙個個輪流來呼叫.但是存在慢的提供者累積請求問題,比如:第二台機器很慢,但是沒掛,當請求調到第二台時就卡在那,久而久之,所有請求都卡在調到第二台上

3)leastactive

最少活躍呼叫,也就是越慢的提供者獲得更少請求

4)consistenthash

一致性hash,也就是如果引數相同就會傳送到同一臺機器上

如果某一台掛掉了,原本發往該提供者的請求會平攤到其他提供者,不會引起劇烈變動

預設只對第乙個引數hash,如果要修改,可以配置

[html]view plain

copy

<

dubbo:parameter

key=

"hash.arguments"

value

="0,1"

/>

8.retries

服務呼叫重試次數,不包括第一次,所以不需要重試設定為0,預設為2

9.cluster

集群方式

1)failover

呼叫失敗會重試其他伺服器,所以通常用於讀操作,但重試會帶來更長延遲

2)failfast

快速失敗,只發起一次呼叫,如果失敗就立即報錯,通常用在新增\更新操作

3)failback

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

4)failsafe

也就是出現異常也沒事,比如寫入審計日誌等操作

5)broadcast

廣播所有服務提供者,挨個呼叫,只要有一台報錯就報錯,通常用來通知所有提供者更新快取或日誌等本地資源資訊

5)forking

並行呼叫多個伺服器,只要乙個成功就返回,通常用於實時性要求較高的讀操作,但會浪費更多服務資源

10.executes

服務提供者每個方法最大可並行執行請求數

(2)用於消費者飲用服務的配置

例子:[html]view plain

copy

<

dubbo:referenceid=

"bzcommitservice"

inte***ce

="cloudserver.domain.ibzcommitservice"

protocol

="hessian"

url=

"dubbo://localhost:20880"

version

="1.0.0"

/>

1.id

服務飲用beanid

2.inte***ce

服務介面名

3.version

服務版本,需要與服務提供者的版本一致

4.protocol

只呼叫指定協議的服務提供方

5.url

點對點直連服務提供者位址,將繞過註冊中心

(3)服務提供者的協議配置.

如果需要支援多種協議,可以宣告多個標籤,並在中protocol屬性指定使用的協議

1.id

協議的beanid,可以在中引用此id,如果id不填,預設和name屬性值一樣,重複則在name後加序號

2.name

協議名稱

3.port

服務埠,dubbo協議預設為20800,http、hessian預設為80,rmi預設為1099.

如果配置為-1或沒配,則會自動分配乙個沒被占用的埠

4.server

協議的伺服器實現型別,dubbo協議有mina、netty,預設為netty,http有jetty、servlet,預設為servlet

5.accesslog

設定為true則會向logger中輸出訪問日誌;也可以填寫日誌檔案路徑,直接把訪問日誌輸出到指定檔案

6.threadpool

執行緒池型別,可選fixed/cached

7.threads

服務執行緒池大小

8.dispatcher

協議的訊息派發方式,用於指定執行緒模型,如dubbo協議的all,direct等

(4)註冊中心配置

如果有多個不同的註冊中心,可以宣告多個標籤,並在或的registry屬性指定使用的註冊中心。

1.address

註冊中心伺服器位址,如果位址沒有埠預設為9090,同一集群內的多個位址用逗號分隔,如ip:port,ip:port,不同集群的註冊中心則配置多個

(5)服務提供者預設值配置。

為和標籤的預設值設定

也就是說provider中有些設定是各個service公用的,又與預設值不一樣,就可以使用這個標籤

那麼標籤中屬性也就和和完全一樣如:

[html]view plain

copy

<

dubbo:provider

timeout

="180000"

/>

也就是說所有service預設的timeout=180000

dubbo配置檔案

一 配置檔案組成 dubbo registry註冊中心 dubbo monitor監控中心 dubbo provider服務提供者 dubbo service暴露服務 dubbo protocol協議資訊 dubbo consumer服務消費者 dubbo reference服務引用 dubbo m...

dubbo配置檔案

一 配置檔案組成 dubbo registry 註冊中心 dubbo monitor 監控中心 dubbo provider 服務提供者 dubbo service 暴露服務 dubbo protocol 協議資訊 dubbo consumer 服務消費者 dubbo reference 服務引用 ...

dubbo配置檔案異常

今天遇到了個問題,把專案遷移到其他地方,匯入的時候dubbo的配置檔案有異常,但是不影響,可以繼續跑,請原諒我屌絲程式設計師的強迫症,不容許看見一點點x的標誌 異常內容 cvc complex type.2.4.c the matching wildcard is strict,but no dec...