springcloud eureka.instance


1.在springcloud中服務的 Instance ID 默認值是:

${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}},
也就是:主機名:應用名:應用端口。如圖1
2.可以自定義:
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
eureka.instance.prefer-ip-address=true
 這時實例名字就是主機ip地址+端口號,如圖: 
         
 
 
3.那么問題來了,此時鼠標放在實例上url指向的依然是主機名+端口號,如下圖。這樣客戶端是訪問不到實例的,我們必須讓實例url指向 主機ip+端口號
 
4.解決辦法:
eureka.instance.hostname= ${spring.cloud.client.ipAddress}

這里我們通過設置主機名為主機ip,那么上圖紅框內容就會變成如下圖:

 
這樣我們就可以通過ip+端口號訪問實例了。
 
總結:springcloud是為分布式提供了一站式服務,其中eureka用於服務治理,它是基於Netflix Eureka 做了封裝。上面記錄的這個實例無法訪問的問題是我們做微服務時遇到的一個問題,網上找了很久也沒找到解答,最后還是自己解決的。
 
訪問實例時url指向 → 主機名+端口號 ,這樣是訪問不到的,只能通過 主機IP+端口號才能訪問,解決辦法:
eureka.instance.hostname= ${spring.cloud.client.ipAddress}


免責聲明!

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



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