解决swarm中eureka注册无法获取主机名
问题分析
目前我们的服务使用的是spring-boot
最早使用的是hostname
的方式,发现经常出现hostname
为localhost
,后来直接使用hostname
为服务名称但是在eureka中却只显示一个服务,spring-boot
注册到eureka
配置如下:
问题解决
将hostname
改为${HOSTNAME}
获取系统环境变量就可以获取到主机名了
并且将instance-id
改为${HOSTNAME}:${spring.application.name}:${spring.application.instance_id:${server.port}}
这样在eureka
中不会应为重名导致多服务只显示一个