解決微服務註冊到Eureka Server後,服務IP爲127.0.0.1

現象爲:

微服務註冊到Eureka Server後,服務IP爲127.0.0.1



查看服務環境


因爲我沒有配置spring.cloud.client.hostname變量,所以默認取操作系統的主機名,查看驗證:

[ddh_tyqx@localhost apiservice]$ hostname
localhost.localdomain


果然如此!而此主機名有配置對應IP,如下:

[ddh_tyqx@localhost apiservice]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
所以,服務註冊上去後,IP爲127.0.0.1


解決辦法:

修改主機名,我們將主機名改成CentOS

[ddh_tyqx@localhost apiservice]#sudo hostnamectl --static set-hostname CentOS

若主機名沒有配置對應的IP地址,由會依次(可用網絡設備)選擇一個IP作爲註冊服務IP(可外部訪問的IP),如果服務器上有多個可以外部訪問的IP,可以配置:以指定選擇網段或忽略網絡設備的方式進行配置,方法:

配置優先選擇網段方法:

spring.cloud.inetutils.preferredNetworks[0]: 10.176
spring.cloud.inetutils.preferredNetworks[1]: 192.168.1
spring.cloud.inetutils.preferredNetworks[2]: 192.168

忽略網絡設置的方法

spring.cloud.inetutils=ignored-interfaces[0]=VirtualBox Host-Only Ethernet Adapter
spring.cloud.inetutils=ignored-interfaces[1]=VMware Virtual Ethernet Adapter for VMnet1
spring.cloud.inetutils=ignored-interfaces[2]=VMware Virtual Ethernet Adapter for VMnet8
spring.cloud.inetutils=ignored-interfaces[3]=TAP-Windows Adapter V9
spring.cloud.inetutils=ignored-interfaces[4]=TAP-Windows Adapter V9 #2
spring.cloud.inetutils=ignored-interfaces[5]=TAP-Windows Adapter V9 #2 #2
spring.cloud.inetutils=ignored-interfaces[6]=TAP-Windows Adapter V9 #1
spring.cloud.inetutils=ignored-interfaces[7]=VirtualBox Host-Only Ethernet Adapter #2
spring.cloud.inetutils=ignored-interfaces[8]=Microsoft Hosted Network Virtual Adapter
spring.cloud.inetutils=ignored-interfaces[9]=WAN Miniport(IKEv2)

自動解析主機名爲IP及ID格式配置方法

eureka.instance=instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${spring.application.instance_id:${server.port}}
eureka.instance=preferIpAddress=true


重啓應用服務(重新註冊),即可!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章