Eureka Server 的 Instance Status 一直顯示主機名問題


Eureka Server 的 Instance Status 一直顯示主機名問題

注冊中心啟動后,訪問 http://localhost:8761/ 后:

image

如何調整為具體所在的服務器 IP 呢?

解決方案:
application.yml 文件新增:

eureka:
  instance:
    instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
    prefer-ip-address:  true
    

配置說明:
(1)eureka.instance.instance-id 指明了status名字命名; eureka.instance.prefer-ip-address 解決了下圖中2位置的問題:
image
(2) spring.cloud.client.ip-address 屬性是來自於 spring-cloud-commons 包的 org.springframework.cloud.client.HostInfoEnvironmentPostProcessor # postProcessEnvironment()方法:

	public void postProcessEnvironment(ConfigurableEnvironment environment,
			SpringApplication application) {
		InetUtils.HostInfo hostInfo = getFirstNonLoopbackHostInfo(environment);
		LinkedHashMap<String, Object> map = new LinkedHashMap<>();
		map.put("spring.cloud.client.hostname", hostInfo.getHostname());
		map.put("spring.cloud.client.ip-address", hostInfo.getIpAddress());
		MapPropertySource propertySource = new MapPropertySource(
				"springCloudClientHostInfo", map);
		environment.getPropertySources().addLast(propertySource);
	}

驗證

image


免責聲明!

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



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