繁体   English   中英

解决对 docker-compose 的依赖

[英]Solve dependencies on docker-compose

我有一个 Spring boot 微服务连接到 Spring 配置服务以获取配置,但显然,该服务在配置服务器完全启动并运行后无法启动,否则它将永远无法再次连接(?)

这是我在运行 docker-compose 文件时在服务控制台中看到的错误:

2016-04-07 14:25:51.305 WARN 1 --- [main] cccConfigServicePropertySourceLocator:无法定位 PropertySource:对“ http://configserver:8888/myservice/default ”的 GET 请求的 I/O 错误:连接被拒绝; 嵌套异常是 java.net.ConnectException:连接被拒绝

这是我的 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

一旦两个服务都在 Eureka(发现)上运行并注册,我尝试在myservice上调用/refresh但它一直失败并返回相同的错误。

如果我重新启动 docker 实例,它可以毫无问题地连接。

这是否意味着我必须让配置服务器持续运行才能做到这一点?

如果配置服务器在启动时尚未准备好,您需要将客户端应用程序配置为更健壮。 用户指南中有一个部分。 TL;DR 包括 spring-retry 并设置spring.cloud.config.failFast=true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM