Spring Cloud Config 如何下载服务的远程配置?
How does Spring Cloud Config download remote configurations for a service?
我几天前在 GitHub 上发现了关于 spring-cloud 的 example。
我在运行配置服务示例时遇到了一些问题。我不知道如何正确使用config-microservice
。
in this blog,它说微服务应用程序的配置应该存储在环境中,而不是项目中。
但我不确定该怎么做。我不知道其中一个微服务,例如 movie-microservice
Spring 引导应用程序如何从 config-service
.
获取配置文件
好问题。
首先,确保 spring-cloud-starter-config
位于要使用配置服务远程配置的应用程序的 class 路径上。
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
这将return以下响应:
{
"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
现在启动您的电影服务,首先确保配置服务 运行ning 可用并在 http://localhost:8888
可用,远程配置将用于指定的配置文件。
我几天前在 GitHub 上发现了关于 spring-cloud 的 example。
我在运行配置服务示例时遇到了一些问题。我不知道如何正确使用config-microservice
。
in this blog,它说微服务应用程序的配置应该存储在环境中,而不是项目中。
但我不确定该怎么做。我不知道其中一个微服务,例如 movie-microservice
Spring 引导应用程序如何从 config-service
.
好问题。
首先,确保 spring-cloud-starter-config
位于要使用配置服务远程配置的应用程序的 class 路径上。
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
这将return以下响应:
{
"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
现在启动您的电影服务,首先确保配置服务 运行ning 可用并在 http://localhost:8888
可用,远程配置将用于指定的配置文件。