Spring配置中心(Spring Cloud Config)在配置了context-path后消费端无法通过eureka获取配置的解决
最近研究微服务,使用Eureka搭建了注册中心,并且使用SpringCloudConfig做配置中心当配置中心注册到注册中心以后,消费端在bootstrap.yml通过以下配置即可获取到配置数据spring:profiles:active: ${#help.profile#:dev}#运行环境占位符,打包时被替代cloud:config:...
·
最近研究微服务,使用Eureka搭建了注册中心,并且使用SpringCloudConfig做配置中心
当配置中心注册到注册中心以后,消费端在bootstrap.yml通过以下配置即可获取到配置数据
spring:
profiles:
active: ${#help.profile#:dev} #运行环境占位符,打包时被替代
cloud:
config:
discovery:
enabled: true
serviceId: help-config-server
profile: ${spring.profiles.active} #使用运行环境名作为配置环境名
name: helpStarter
application:
name: help-starter
但是当对配置中心设置了context-path
server:
port: 8888
servlet:
context-path: /config
以后,却无法正确获取,查看日志发现,消费端在获取配置时,访问的是127.0.0.1:8888,并没有增加/config,考虑到后期维护,写死URL肯定不行,在查阅了很久资料以后才发现,可以在配置中心的eureka注册部分增加如下配置
eureka:
instance:
preferIpAddress: true
health-check-url: http://localhost:${server.port}${server.servlet.context-path:}/actuator/health
status-page-url: http://localhost:${server.port}${server.servlet.context-path:}/actuator/info
home-page-url: http://localhost:${server.port}${server.servlet.context-path:}
metadata-map:
configPath: ${server.servlet.context-path:}
management.context-path: ${server.servlet.context-path:}
client:
serviceUrl:
defaultZone: http://127.0.0.1:5000/eureka/
如此即可在消费端获取到正确的配置信息
但要主要,当不使用context-path时,应配置成""或注释掉整个servlet.context-path节点,而不是设置为/,否则消费端会报错
更多推荐
已为社区贡献2条内容
所有评论(0)