Spring Cloud Config如何下载服务的远程配置?

时间:2015-08-06 01:24:32

标签: spring-boot spring-cloud microservices

我几天前在GitHub上发现了关于spring-cloud的这个example

我在使配置服务示例正常工作时遇到了一些问题。我不知道如何正确使用config-microservice

in this blog,它说微服务应用程序的配置应存储在环境中,而不是存储在项目中。

但我不知道该怎么做。我不知道其中一个微服务,例如movie-microservice Spring Boot应用程序如何从config-service获取配置文件。

1 个答案:

答案 0 :(得分:2)

很棒的问题。

首先,确保spring-cloud-starter-config位于您希望从配置服务使用远程配置的应用程序的类路径上。

http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_client_side_usage

了解配置服务是否正确地为应用程序提供环境配置的最佳方法是启用运行状况检查。

在配置服务配置中,请确保为您的某个应用程序启用以下内容。我已为movie服务添加了健康检查,标签为master(表示使用我的git存储库的主分支)。

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/kbastani/spring-boot-microservice-config
        health:
          repositories:
            movie:
              label: master 

现在,我需要确保的是,我的git存储库具有可用于我的应用程序的名称为movie的配置。此配置的名称可以是movie.{properties|yml}。我选择使用yaml:https://github.com/kbastani/spring-boot-microservice-config/blob/master/movie.yml

现在,在您启动配置服务之后,您可以运行运行状况检查以查看是否正在使用远程存储库。

$ curl http://localhost:8888/health

这将返回以下回复:

{
  "status" : "UP",
  "configServer" : {
    "status" : "UP",
    "repositories" : [ {
      "sources" : [ "https://github.com/kbastani/spring-boot-microservice-config/movie.yml", "https://github.com/kbastani/spring-boot-microservice-config/application.yml" ],
      "name" : "movie",
      "profiles" : [ "default" ],
      "label" : "master"
    } ]
  },
  "discoveryComposite" : {
    "description" : "Spring Cloud Eureka Discovery Client",
    "status" : "UP",
    "discoveryClient" : {
      "description" : "Spring Cloud Eureka Discovery Client",
      "status" : "UP",
      "services" : [ "configserver" ]
    }
  },
  "diskSpace" : {
    "status" : "UP",
    "total" : 498954403840,
    "free" : 445484142592,
    "threshold" : 10485760
  },
  "hystrix" : {
    "status" : "UP"
  }
}

现在在电影服务中,请确保在bootstrap.yml中设置了以下配置。

spring:
  application:
    name: movie
  profiles:
    active: default
  cloud:
    config:
      uri: http://localhost:8888
    failFast: true

现在启动电影服务,首先确保配置服务正在运行且在http://localhost:8888处可用,并且远程配置将用于指定的配置文件。