Dubbo服務啟動依賴檢查


dubbo 官方文檔地址:http://dubbo.io/User+Guide-zh.htm

項目中存在服務之間存在循環依賴,啟動時總是報錯,通過修改啟動檢查check=false解決,下面是dubbo官網提供的啟動檢查文檔。

啟動時檢查

Dubbo缺省會在啟動時檢查依賴的服務是否可用,不可用時會拋出異常,阻止Spring初始化完成,以便上線時,能及早發現問題,默認check=true。

如果你的Spring容器是懶加載的,或者通過API編程延遲引用服務,請關閉check,否則服務臨時不可用時,會拋出異常,拿到null引用,如果check=false,總是會返回引用,當服務恢復時,能自動連上。

 

可以通過check="false"關閉檢查,比如,測試時,有些服務不關心,或者出現了循環依賴,必須有一方先啟動。

關閉某個服務的啟動時檢查:(沒有提供者時報錯)

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

關閉所有服務的啟動時檢查:(沒有提供者時報錯)

< dubbo:consumer check = "false" />

關閉注冊中心啟動時檢查:(注冊訂閱失敗時報錯)

< dubbo:registry check = "false" />

也可以用dubbo.properties配置:

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

也可以用-D參數:

java -Ddubbo.reference.com.foo.BarService.check=false
java -Ddubbo.reference.check=false
java -Ddubbo.consumer.check=false
java -Ddubbo.registry.check=false
注意區別
  • dubbo.reference.check=false,強制改變所有reference的check值,就算配置中有聲明,也會被覆蓋。
  • dubbo.consumer.check=false,是設置check的缺省值,如果配置中有顯式的聲明,如:<dubbo:reference check="true"/>,不會受影響。
  • dubbo.registry.check=false,前面兩個都是指訂閱成功,但提供者列表是否為空是否報錯,如果注冊訂閱失敗時,也允許啟動,需使用此選項,將在后台定時重試。

引用缺省是延遲初始化的,只有引用被注入到其它Bean,或被getBean()獲取,才會初始化。
如果需要飢餓加載,即沒有人引用也立即生成動態代理,可以配置:

< dubbo:reference interface = "com.foo.BarService" init = "true" />

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM