[英]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.