我几天前在GitHub上发现了关于spring-cloud的这个example。
我在使配置服务示例正常工作时遇到了一些问题。我不知道如何正确使用config-microservice
。
in this blog,它说微服务应用程序的配置应存储在环境中,而不是存储在项目中。
但我不知道该怎么做。我不知道其中一个微服务,例如movie-microservice
Spring Boot应用程序如何从config-service
获取配置文件。
答案 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
处可用,并且远程配置将用于指定的配置文件。