解决对 docker-compose 的依赖
Solve dependencies on docker-compose
我有一个 Spring 启动微服务连接到 Spring 配置服务以获取配置,但显然,在配置服务器完全启动并且 运行 之后该服务无法启动ning,否则永远连接不上(?)
这是我在 运行 docker-compose 文件时在服务控制台中看到的错误:
2016-04-07 14:25:51.305 WARN 1 --- [ main]
c.c.c.ConfigServicePropertySourceLocator : Could not locate
PropertySource: I/O error on GET request for
"http://configserver:8888/myservice/default": Connection refused;
nested exception is java.net.ConnectException: Connection refused
这是我的 docker-compose 文件:
discovery:
image:discovery-service
ports:
- "8761:8761"
configserver:
image:config-service
ports:
- "8888:8888"
links:
- discovery
myservice:
image:my-service
ports:
- "9006:9006"
links:
- discovery
- configserver
这是服务 bootstrap.yml 配置:
spring:
application:
name: myservice
cloud:
enabled: true
config:
uri: http://configserver:8888
encrypt:
failOnError: false
一旦这两个服务都 运行ning 并在 Eureka 上注册(发现),我尝试在 myservice
上调用 /refresh
但它一直失败并返回相同的错误。
如果我重新启动 docker 实例,它可以正常连接。
这是否意味着我必须持续保持配置服务器 运行ning 才能做到这一点?
如果配置服务器在启动时尚未准备就绪,您需要将客户端应用配置为更健壮。 user guide 中有一个部分。 TL;DR 包括 spring-重试并设置 spring.cloud.config.failFast=true
.
我有一个 Spring 启动微服务连接到 Spring 配置服务以获取配置,但显然,在配置服务器完全启动并且 运行 之后该服务无法启动ning,否则永远连接不上(?)
这是我在 运行 docker-compose 文件时在服务控制台中看到的错误:
2016-04-07 14:25:51.305 WARN 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://configserver:8888/myservice/default": Connection refused; nested exception is java.net.ConnectException: Connection refused
这是我的 docker-compose 文件:
discovery:
image:discovery-service
ports:
- "8761:8761"
configserver:
image:config-service
ports:
- "8888:8888"
links:
- discovery
myservice:
image:my-service
ports:
- "9006:9006"
links:
- discovery
- configserver
这是服务 bootstrap.yml 配置:
spring:
application:
name: myservice
cloud:
enabled: true
config:
uri: http://configserver:8888
encrypt:
failOnError: false
一旦这两个服务都 运行ning 并在 Eureka 上注册(发现),我尝试在 myservice
上调用 /refresh
但它一直失败并返回相同的错误。
如果我重新启动 docker 实例,它可以正常连接。
这是否意味着我必须持续保持配置服务器 运行ning 才能做到这一点?
如果配置服务器在启动时尚未准备就绪,您需要将客户端应用配置为更健壮。 user guide 中有一个部分。 TL;DR 包括 spring-重试并设置 spring.cloud.config.failFast=true
.