1.配置为:
1 eureka: 2 instance: 3 instance-id: ${spring.cloud.client.ip-address}:${server.port} #实例id,即上图Status下的IP加端口 4 hostname: ${spring.cloud.client.ip-address} #见下面解释 5 prefer-ip-address: true # prefer-ip-address = true会获取本机ip地址,hostname将失效
6 spring:
7 application:
8 name: jcxxpt #上图Application名
9 server:
10 servlet:
11 context-path: /
12 port: 19901
解释:
当instance-id为空或不写时,默认值是:
${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}},也就是:主机名:应用名:应用端口
一般会通过上面的 instance-id将实例名 改成 主机ip地址+端口号
但此时实例url 依然是主机名+端口号,我们必须让实例url指向 主机ip+端口号
所以需要
hostname: ${spring.cloud.client.ip-address}
我理解就是当prefer-ip-address为false时,实例url的地址,hostname不设置就是主机名,但最好设置了成ip
2.上图中的${spring.cloud.client.ip-address}并没有配置啊,值是怎么来的?
答:从以下pom
1 <dependency> 2 <groupId>org.springframework.cloud</groupId> 3 <artifactId>spring-cloud-commons</artifactId> 4 </dependency>
springboot2.x后改为${spring.cloud.client.ip-address}
参考连接: