Dubbo3 啟動(dòng)時(shí)檢查

2022-03-30 15:13 更新

在啟動(dòng)時(shí)檢查依賴的服務(wù)是否可用

Dubbo 缺省會(huì)在啟動(dòng)時(shí)檢查依賴的服務(wù)是否可用,不可用時(shí)會(huì)拋出異常,阻止 Spring 初始化完成,以便上線時(shí),能及早發(fā)現(xiàn)問(wèn)題,默認(rèn) ?check="true"?。

可以通過(guò) ?check="false"? 關(guān)閉檢查,比如,測(cè)試時(shí),有些服務(wù)不關(guān)心,或者出現(xiàn)了循環(huán)依賴,必須有一方先啟動(dòng)。

另外,如果你的 Spring 容器是懶加載的,或者通過(guò) API 編程延遲引用服務(wù),請(qǐng)關(guān)閉 check,否則服務(wù)臨時(shí)不可用時(shí),會(huì)拋出異常,拿到 null 引用,如果 ?check="false"?,總是會(huì)返回引用,當(dāng)服務(wù)恢復(fù)時(shí),能自動(dòng)連上。

示例

通過(guò) spring 配置文件

關(guān)閉某個(gè)服務(wù)的啟動(dòng)時(shí)檢查 (沒(méi)有提供者時(shí)報(bào)錯(cuò)):

<dubbo:reference interface="com.foo.BarService" check="false" />

關(guān)閉所有服務(wù)的啟動(dòng)時(shí)檢查 (沒(méi)有提供者時(shí)報(bào)錯(cuò)):

<dubbo:consumer check="false" />

關(guān)閉注冊(cè)中心啟動(dòng)時(shí)檢查 (注冊(cè)訂閱失敗時(shí)報(bào)錯(cuò)):

<dubbo:registry check="false" />

通過(guò) dubbo.properties

dubbo.reference.com.foo.BarService.check=false
dubbo.consumer.check=false
dubbo.registry.check=false

通過(guò) -D 參數(shù)

java -Ddubbo.reference.com.foo.BarService.check=false
java -Ddubbo.consumer.check=false 
java -Ddubbo.registry.check=false

配置的含義

?dubbo.reference.com.foo.BarService.check?,覆蓋 ?com.foo.BarService?的 reference 的 check 值,就算配置中有聲明,也會(huì)被覆蓋。

?dubbo.consumer.check=false?,是設(shè)置reference的 ?check ?的缺省值,如果配置中有顯式的聲明,如:?<dubbo:reference check="true"/>?,不會(huì)受影響。

?dubbo.registry.check=false?,前面兩個(gè)都是指訂閱成功,但提供者列表是否為空是否報(bào)錯(cuò),如果注冊(cè)訂閱失敗時(shí),也允許啟動(dòng),需使用此選項(xiàng),將在后臺(tái)定時(shí)重試。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)