我的GitHub地址:https://github.com/leebingbin/git
在使用Spring Cloud的過程當中,不免會遇到一些問題。因此對Spring Cloud的經常使用問題作一些總結。github
根據市場使用的反饋狀況來看,Spring Cloud 進入 Camden 時代後,已經比較穩定。通常來講,問題都不是 Spring Cloud 自己的 Bug 致使。spring
排查配置有無問題:bootstrap
· YAML 縮進是否正確網絡
通常新手會發現 Spring Cloud 應用程序到本身本地就沒法正常啓動了,或配置沒法正常加載。有時候協助解決的時候,發現僅僅是 YAML 配置文件縮進不正確。相似這樣的問題,應在編碼的過程當中嚴格規避。架構
· 配置屬性是否正確app
配置屬性寫錯,也是很常見的問題。別看該問題低級,但很多初學者都會遇到這類問題(尤爲是當 IDE 不自動提示或給出警告時,應格外注意)。微服務
· 配置屬性的位置是否正確編碼
配置屬性位置不正確可能會致使應用的不正常,好比:spa
-- 應當配置在 Eureka Client 項目中的屬性,配置在了 Eureka Server 項目上
-- 應當寫在bootstrap.yml 中的屬性,寫在了 application.yml 中
-- 應當寫在 application.yml 的屬性,寫在了 bootstrap.yml 中
若是確認配置無誤,便可考慮運行環境是否存在問題。
· 環境變量
例如Java環境變量、Maven 環境變量以及 Docker 容器環境變量等。當應用沒法正常工做時,應該確保環境變量配置。
· 依賴下載是否完整
我在帶新入職的一些新手時,他們遇到應用沒法正常啓動的問題,最終發現僅僅是依賴沒有下載完整所致。所以,建議在啓動應用以前,使用以下命令打包,從而確認依賴的完整性。
mvn clean package
· 網絡問題
微服務之間經過網絡保持通訊,所以,網絡經常是排查問題的關鍵。當問題發生時,可優先排查網絡問題。
5.3 排查代碼問題
如通過以上步驟,依然沒有定位到 Spring Cloud 的問題,那麼可能時編寫的代碼出了問題。不少時候,經常由於少了某個註解,或是依賴缺失,而致使了各類異常。
因此合理的日誌級別,會對問題的定位有奇效。
5.4 排查 Spring Cloud 自身的問題
若是肯定不是自身代碼問題,就可 Debug 一下 Spring Cloud 的代碼了。同時,可在 GitHub 等平臺給 Spring Cloud 項目組提交 Issue , 而後參考官方文檔回覆,嘗試規避相應問題。如問題沒法規避,就須要 Spring Cloud 進行擴展,或者修復 Spring Cloud 的 Bug , 從而知足需求。此時,請不要忘記在 Spring Cloud 的 GitHub 上 Pull Request , 協助官方改進 Spring Cloud, 讓 Spring Cloud 更加完善穩定。
Tips: 可參考的資源(在這些地方,均有官方人員參與,可幫助咱們迅速解決問題)
1)各個項目自身的GitHub,例如 Eureka 的GitHub : http://github.com/Netflix/eureka
2)Spring Cloud 對應項目的 GitHub ,例如 Eureka 項目在 Spring Cloud Netflix 中:http://github.com/spring-cloud/spring-cloud-netflix
3)Spring Cloud 的 StackOverflow : http://stackoverflow.com/questions/tagged/spring-cloud
4)Spring Cloud 的 Gitter : http://gitter.im/spring-cloud/spring-cloud
5)Spring Cloud 中國社區:http://springcloud.cn
· 關於「Eureka常見問題」能夠參考,我以前的文章《微服務開發架構——Spring Cloud常見問題與總結<一>Eureka常見問題》:http://www.javashuo.com/article/p-fbmbfvua-w.html ;
· 關於「Hystrix/Feign 整合Hystrix後首次請求失敗」能夠參考,我以前的文章《微服務開發架構——Spring Cloud常見問題與總結<二>Hystrix/Feign 整合Hystrix後首次請求失敗》:http://www.javashuo.com/article/p-mkoycawh-en.html;
· 關於 「Turbine 聚合數據不完整」 能夠參考,我以前的文章《微服務開發架構——Spring Cloud常見問題與總結<三>Turbine 聚合數據不完整》:http://www.javashuo.com/article/p-qcbuxfst-eq.html;
· 關於「Spring Cloud 各組件配置屬性」能夠參考,我以前的文章《微服務開發架構——Spring Cloud常見問題與總結<四>Spring Cloud 各組件配置屬性》:http://www.javashuo.com/article/p-vxlulaok-eu.html 。
本文爲博主原創文章,轉載請註明出處!