gpt4 book ai didi

java - 解决对docker-compose的依赖

转载 作者:行者123 更新时间:2023-11-30 07:28:37 24 4
gpt4 key购买 nike

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

这是我运行 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

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

如果我重新启动 docker 实例,它的连接不会出现问题。

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

最佳答案

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

关于java - 解决对docker-compose的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36479452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com