dubbo啟動順序問題


  之前使用dubbo2.5.4的時候一直有個問題:服務啟動的時候,如果是先啟動consumer后啟動provider,則通過@Referrence獲取的service會報空指針異常。而先啟動provider后啟動consumer服務可以正常訪問,網上說設置check屬性為false,但試過了無效。

網上很多人說可以,但自己的項目就是不行,跟了一下dubbo的源碼。

先啟動consumer,后啟動provider,在啟動provider的時候,通過consumer的日志看到zookeeper確實向consumer發送注冊信息了,

但是在ReferenceConfig類中發現一個不太對勁的參數:

圖中的check屬性就是在@Referrence中設置的check參數,自己明明設了false,到了這里卻變成了null,還設成了true。

這情況說明了自己設的check屬性是沒用的。

最后google發現這是dubbo2.5.4的一個bug,在2.5.6版本修復了,將dubbo的版本換成2.5.6后,再跟一次源碼

這樣能取到check的值了,服務也能正常獲取。

另:在更換dubbo版本的時候還出了一個小問題:如果provider的配置@Service上使用了protocol = “dubbo” 參數,啟動時會報 No bean named 'dubbo' available 的錯。

把 protocol = “dubbo” 去掉就好了,網上說2.5.6版本的dubbo支持多協議,但為什么不能指定協議了,這個問題有待探討。


免責聲明!

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



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