Spring配置中心(Spring Cloud Config)在配置了context-path后消费端无法通过eureka获取配置的解决

最近研究微服务,使用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节点,而不是设置为/,否则消费端会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值