正經學徒,佛系記錄,不搞事情
基於上文:
官方解釋:dubbo 缺省會在啟動時檢查依賴的服務是否可用,不可用時會丟擲異常,阻止 spring 初始化完成,以便上線時,能及早發現問題。
啟動時檢查分為兩類:
另外乙個值得注意的地方是:如果使用的是啟動時檢查,一開始專案啟動報錯,後面服務恢復的時候,系統還是反射。但如果關閉啟動時檢查,當服務恢復時,系統會自動連上。
官方建議關閉啟動時檢查的情況:
測試時,有些服務不關心,或者出現了迴圈依賴,必須有一方先啟動。另外,如果你的 spring 容器是懶載入的,或者通過 api 程式設計延遲引用服務,請關閉 check,否則服務臨時不可用時,會丟擲異常,拿到 null 引用,如果check="false"
,總是會返回引用,當服務恢復時,能自動連上。
測試:
步驟:啟動zookeeper,啟動服務消費者,但不啟動服務提供者
如圖所示,系統報錯反射錯誤
步驟:修改服務消費者端的配置檔案:
#設定關閉啟動時檢查
dubbo.reference.com.mn.user.bs.userbs.check=false
此時,相同操作下,系統不會報錯。
步驟:啟動zookeeper,啟動服務消費者,但不啟動服務提供者。
此時系統報錯,並且不能請求
啟動服務提供者,依然無法請求服務
步驟:啟動zookeeper,啟動服務消費者,但不啟動服務提供者。
此時系統報錯,並且不能請求
啟動服務提供者,服務可以請求了,說明設定關閉啟動時檢查,當服務啟動時,系統會自動連上
registry同理,判斷註冊中心是否成功啟動,以此決定系統啟動時是否丟擲異常
啟動時檢查
dubbo 缺省會在啟動時檢查依賴的服務是否可用,不可用時會丟擲異常,阻止 spring 初始化完成,以便上線時,能及早發現問題,預設check true 可以通過check false 關閉檢查,比如,測試時,有些服務不關心,或者出現了迴圈依賴,必須有一方先啟動。另外,如果你的 spring 容器...
對dubbo啟動時檢查check屬性的一些個人理解
對於dubbo框架,對服務引用啟動時檢查的check配置,官方文件的描述是這樣的 dubbo 缺省會在啟動時檢查依賴的服務是否可用,不可用時會丟擲異常,阻止 spring 初始化完成,以便上線時,能及早發現問題,預設check true 可以通過check false 關閉檢查,比如,測試時,有些服...
servlet啟動時載入
servlet預設是在第一次訪問的時候建立的物件。servlet啟動時載入,就是讓 tomcat 伺服器啟動的時候建立servlet的物件 servlet物件是第一次被訪問的時候會被建立的,init方法就會執行。假設在init方法中做了一些比較耗時的操作 比如 載入了一些配置檔案並且解析可能需要花費...