1. 程式人生 > >Spring配置中心(Spring Cloud Config)在配置了context-path後消費端無法通過eureka獲取配置的解決

Spring配置中心(Spring Cloud Config)在配置了context-path後消費端無法通過eureka獲取配置的解決

最近研究微服務,使用Eureka搭建了註冊中心,並且使用SpringCloudConfig做配置中心

當配置中心註冊到註冊中心以後,消費端在bootstrap.yml通過以下配置即可獲取到配置資料

server:
  port: 8888
  servlet:
    context-path: /config-server

eureka:
  instance:
    eureka-server-name: localhost
    eureka-server-port: 8761
    metadata-map:
      configPath: ${server.servlet.context-path}
  client:
    serviceUrl:
      defaultZone: http://${eureka.instance.eureka-server-name}:${eureka.instance.eureka-server-port}/eureka-server/eureka/

 以後,卻無法正確獲取,檢視日誌發現,消費端在獲取配置時,訪問的是127.0.0.1:8888,並沒有增加/config,考慮到後期維護,寫死URL肯定不行,在查閱了很久資料以後才發現,可以在配置中心的eureka註冊部分增加如下配置

spring:
  application:
    name: config-client
  cloud:
    config:
      label: master
      profile: dev
#      uri: http://localhost:8888/config-server
      discovery:
        enabled: true              # 表示使用服務發現元件中的Config Server,而不自己指定Config Server的uri,預設false
        service-id: config-server