赞
踩
最近研究微服务,使用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节点,而不是设置为/,否则消费端会报错
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。