当前位置:网站首页>Eureka注册信息配置备忘
Eureka注册信息配置备忘
2022-06-26 00:33:00 【InfoQ】
欢迎访问我的GitHub
本篇概览
- 在Spring Cloud环境中,Eureka client注册到Eureka server后,可以在Eureka server的home页面看到注册信息,这些信息的内容和Eureka client的配置相关,本文将一些重要配置记录下来以备使用;
默认配置的效果
- 对Eureka client来说,最简单的配置就是只有Eureka server的地址信息,配置文件application.yml如下:
server:
port: 8082
spring:
application:
name: springcloud-deep-provider
eureka:
client:
serviceUrl:
defaultZone: http://172.20.205.23:8081/eureka/
- 其中http://172.20.205.23:8081/eureka/ 是Eureka server的地址,应用启动后如果注册成功,在Eureka server的home页面显示的信息如下图:

- 上图中关于Eureka client的信息,有三处可能存在问题:
- 红框中是Eureka client的身份信息,使用localhost来表明身份显然是不合适的,如果多个Eureka client都用localhost来作为身份信息,就难以区分了;
- 用Eureka client所在机器的IP地址来表示身份比较合适,但如果该机器有多块网卡就会有多个IP地址,如何指定用哪个呢?
- 当您把鼠标放在红框中,那么该链接的URL就会展示在浏览器的底部状态栏,也就是绿框中的内容是这个URL,显然这个localhost会让浏览器访问当前电脑,而不是Eureka client所在机器;
修改后的配置及效果
- 为了修复上述三个问题,需要做以下改动:
- 身份信息的配置需要增加一个配置项,key是eureka.instance.instance-id,value如下,表示将应用名称、IP地址、端口号用冒号拼接在一起:
${spring.application.name}:${spring.cloud.client.ipAddress}:${server.port}
- 每个网卡有个IP地址,指定IP地址范围需要增加一个配置项,key是cloud.inetutils.preferred-networks,value如下,表示使用172.20.207这个网段的IP地址:
172.20.207.
- 注意:由于此配置项加载的较晚,如果配置在application.yml文件中,之前的配置项eureka.instance.instance-id的内容在生成的时候是获取不到指定的IP的,如下图所示,绿框中的URL已经用上了指定的IP,但是红框中的内容依旧不是我们指定的IP:

- 解决上述问题的方法:在当前应用的启动命令中通过-D命令来配置eureka.instance.instance-id参数;
- 在Eureka server的home页面上,点击Eureka client的身份信息时的跳转链接,默认的是hostname,例如上面图片中的localhost:8082/info,其中的locahost就是Eureka client的hostname,这里只要改成IP地址就能正常访问了,需要增加一个配置项,key是eureka.instance.prefer-ip-address,value为true,表示用IP地址代替hostname;
- 上述配置项修改完毕后的application.yml内容如下所示:
server:
port: 8082
spring:
application:
name: springcloud-deep-provider
eureka:
client:
serviceUrl:
defaultZone: http://172.20.205.23:8081/eureka/
instance:
prefer-ip-address: true
instance-id: ${spring.application.name}:${spring.cloud.client.ipAddress}:${server.port}
- 另外还有一处要注意,Eureka client需要开启actuator服务,否则在Eureka server的home页面点击Eureka client的身份信息时,跳转链接虽然正确,但由于Eureka client并没有开启服务,也会导致访问失败,开启的方法是在pom.xml中增加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 修改完毕后,将应用打包生成jar文件,假设文件名是springclouddeepprovider-0.0.1-SNAPSHOT.jar,那么启动应用的命令如下:
java -Dspring.cloud.inetutils.preferred-networks=172.20.207. -jar springclouddeepprovider-0.0.1-SNAPSHOT.jar
- 应用启动后,在Eureka server的home页面的信息如下图,可见配置项都已生效,点击红框中的链接,也能跳转到Eureka client的info页面:

- 至此,配置说明和实战就完成了,希望该备忘录能给您提供参考,解决类似问题;
欢迎关注InfoQ:程序员欣宸
边栏推荐
猜你喜欢

Abnova anti GBA monoclonal antibody solution

CVPR2022 | 长期行动预期的Future Transformer

Shell learning record (II)

Playful girl wangyixuan was invited to serve as the Promotion Ambassador for the global finals of the sixth season perfect children's model

一分钟了解同步、异步、阻塞和非阻塞的区别

Pre ++, post ++ and pre -- and post -- (+a, a++ and --a, a--)

Pointnet/Pointnet++学习

readv & writev

Sunshine boy chenhaotian was invited to be the spokesperson for the global finals of the sixth season perfect children's model

Abnova CSV monoclonal antibody solution
随机推荐
Is the securities account recommended by qiniu safe?
Tengwenze, a hot-blooded boy, was invited to serve as the image ambassador of the global finals of the sixth season perfect children's model
A solution to cross domain problems
图形渲染管线
Detailed explanation of memory leak check tools
shell学习记录(二)
Playful girl wangyixuan was invited to serve as the Promotion Ambassador for the global finals of the sixth season perfect children's model
Characteristics and related specificity of Papain
Scala 基础 (二):变量和数据类型
求n的乘阶
Output Lua print to the cocos2d console output window
启牛推荐的证券账户安全吗?
Convert Weishi camera pictures
socket demo01
Detailed explanation of WiFi related knowledge
A lost note for konjaku beginner
宁要一个完成,不要千万个开始(转载自豆瓣)
Pre ++, post ++ and pre -- and post -- (+a, a++ and --a, a--)
The role of xargs
Create OpenGL window