在開發spring cloud的時候遇到一個很奇葩的問題,就是服務向spring eureka中註冊實例的時候使用的是機器名,然後出現localhost、xxx.xx等這樣的內容,如下圖:
能夠正確的顯示機器名這情況還是良好的,關鍵有的還是顯示localhost,實在是糾結,然後我就開始在網上找解決方法。
在網上也找到了一些思路,如這篇http://blog.csdn.net/cnhome/article/details/52291505,說配置
eureka.instance.perferIpAddress=true
我不知道這朋友用的什麼spring cloud版本,反正我是用的spring cloud()版本中是沒有這個,但是有下面配置,
eureka.instance.prefer-ip-address=true
我是用的spring cloud maven依賴如下:歡迎大家一起學習研究相關技術願意瞭解源碼的朋友直接求求交流分享技術:2147775633
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
快速的將配置添加,然後發包測試,如下圖:
顯示結果還是沒有變化,還是機器名,但是你自己觀察左下角,鼠標url連接地址確實變成了IP,只是URL顯示還是機器名,ok,起碼解決了一部分,剩下的就是顯示問題了。
在網上搜來搜去,多數都是說增加
eureka.instance.prefer-ip-address=true
配置,如http://www.cnblogs.com/yish/p/5985074.html,http://blog.csdn.net/zhuchuangang/article/details/51202307等都是沒有解決問題的。
最終,在http://www.cnphp6.com/detail/17565找到配置,需要配置
eureka.instance.preferIpAddress=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
ok,趕緊上代碼,運行測試,如下圖
ok,成功,這就是我希望的結果。