当前位置:   article > 正文

Spring配置中心(Spring Cloud Config)在配置了context-path后消费端无法通过eureka获取配置的解决_应用加上 context-path: eureka 访问不到了

应用加上 context-path: eureka 访问不到了

最近研究微服务,使用Eureka搭建了注册中心,并且使用SpringCloudConfig做配置中心

当配置中心注册到注册中心以后,消费端在bootstrap.yml通过以下配置即可获取到配置数据

  1. spring:
  2. profiles:
  3. active: ${#help.profile#:dev} #运行环境占位符,打包时被替代
  4. cloud:
  5. config:
  6. discovery:
  7. enabled: true
  8. serviceId: help-config-server
  9. profile: ${spring.profiles.active} #使用运行环境名作为配置环境名
  10. name: helpStarter
  11. application:
  12. name: help-starter

但是当对配置中心设置了context-path

  1. server:
  2. port: 8888
  3. servlet:
  4. context-path: /config

以后,却无法正确获取,查看日志发现,消费端在获取配置时,访问的是127.0.0.1:8888,并没有增加/config,考虑到后期维护,写死URL肯定不行,在查阅了很久资料以后才发现,可以在配置中心的eureka注册部分增加如下配置

  1. eureka:
  2. instance:
  3. preferIpAddress: true
  4. health-check-url: http://localhost:${server.port}${server.servlet.context-path:}/actuator/health
  5. status-page-url: http://localhost:${server.port}${server.servlet.context-path:}/actuator/info
  6. home-page-url: http://localhost:${server.port}${server.servlet.context-path:}
  7. metadata-map:
  8. configPath: ${server.servlet.context-path:}
  9. management.context-path: ${server.servlet.context-path:}
  10. client:
  11. serviceUrl:
  12. defaultZone: http://127.0.0.1:5000/eureka/

如此即可在消费端获取到正确的配置信息

但要主要,当不使用context-path时,应配置成""或注释掉整个servlet.context-path节点,而不是设置为/,否则消费端会报错

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/182369
推荐阅读
相关标签
  

闽ICP备14008679号