springcloud 配置

     

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}

 参考连接:

Eureka服务注册过程详解之IpAddress(详解eureka.instance.prefer-ip-address = true 与 eureka.instance.prefer-ip-address)

https://blog.csdn.net/shog808/article/details/77161071

原文地址:https://www.cnblogs.com/fxx5/p/14548212.html