工程師A接手了3台新服務器,用於部署業務微服務,但是在啟動微服務時,報找不到配置信息,配置信息是配置在 spring cloud config中;
經過幾輪異常點排查,未找出原因,檢查項如下:
1. 新服務器ping註冊中心ip/配置中心ip,都能測試通過;
2. 新服務器netstat端口檢測也正常;
3. 微服務啟動腳本 java -jar 命令與其他正常啟動的微服務腳本也相同,沒有異常配置;
4. 一度懷疑是微服務代碼的問題,因此做排除測試,把微服務腳本在原有部署業務微服的老機器上執行,服務正常啟動;
初步結論: 新服務器與配置中心/註冊中心存在網絡訪問問題;
進一步測試:
發現老服務器的host文件中,加入了所有其他微服務機器及註冊中心、配置中心機器的本地域名與ip的配置;
註冊中心eureka的服務列表中也顯示的是 host域名服務,如下圖:

由此猜測:新機器中沒有配置【所有其他微服務機器及註冊中心、配置中心機器的本地域名與ip的配置】,檢查host配置文件,果然無任何配置,加入host域名映射文件,再次啟動微服務,微服務啟動成功;
最終結論:
1. 如果微服務在啟動過程中,不是使用ip:port模式註冊服務,則使用本機host中的域名往註冊中心進行註冊微服務;
2. 本地微服務調用其他微服務時,則需要通過host文件中的域名配置找到真正的服務ip和端口,進行服務調用,如果沒有配置,則服務調用會失敗;
如下圖:使用域名註冊服務,則RibbonServer客戶端的服務列表為:http://域名:端口


原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/229555.html
微信掃一掃
支付寶掃一掃