原文:http://www.bubuko.com/infodetail-2250226.html
項目中用dubbo發生:
Failed to check the status of the service com.taotao.service.ItemService. No provider available for the service
原因:
Dubbo缺省會在啟動時檢查依賴的服務是否可用,不可用時會拋出異常,阻止Spring初始化完成,以便上線時,能及早發現問題,默認check=true。
如果你的Spring容器是懶加載的,或者通過API編程延遲引用服務,請關閉check,否則服務臨時不可用時,會拋出異常,拿到null引用,如果check=false,總是會返回引用,當服務恢復時,能自動連上。
可以通過check="false"關閉檢查,比如,測試時,有些服務不關心,或者出現了循環依賴,必須有一方先啟動。
1、關閉某個服務的啟動時檢查:(沒有提供者時報錯)
<dubbo:reference interface="com.foo.BarService" check="false" /> 2、關閉所有服務的啟動時檢查:(沒有提供者時報錯) 寫在定義服務消費者一方 <dubbo:consumer check="false" /> 3、關閉注冊中心啟動時檢查:(注冊訂閱失敗時報錯) <dubbo:registry check="false" />