(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...