В настоящее время у меня есть два микросервиса:
- service - порт 8080, этот микросервис пытается получить конфигурацию из другого микросервиса.
- config - порт 8888,Предполагается, что этот микросервис обеспечивает конфигурацию.
По какой-то причине мой сервис не может получить конфигурацию из конфигурационного микросервиса.
Мой конфигурационный микросервис должен работать, потому что я могу свернуть localhost: 8888 / service / default на моем компьютереЯ получаю:
{"name":"service","profiles":["default"],"label":null,"version":null,"state":null,"propertySources":[{"name":"classpath:/shared/service.yml","source":{"server.port":8080,"spring.security.user.password":"admin"}},{"name":"classpath:/shared/service.yaml","source":{"server.port":8080,"spring.security.user.password":"admin"}}]}
Получена ошибка (полная)
service | 2019-06-06 21:31:06.721 INFO 1 --- [main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://config:8888
service | 2019-06-06 21:31:06.894 INFO 1 --- [main] c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://config:8888. Will be trying the next url if available
service | 2019-06-06 21:31:06.904 ERROR 1 --- [main] o.s.boot.SpringApplication : Application run failed
Docker-compose.yaml
version: '3.7'
services:
config:
container_name: config
build: ./config
ports:
- 8888:8888
service:
container_name: service
build: ./service
ports:
- 8080:8080
depends_on:
- config
Сервисный файл Docker:
FROM openjdk:8-jdk-alpine
ADD target/service.jar /app.jar
CMD [ "java", "-Xmx200m", "-jar", "/app.jar" ]
EXPOSE 8080
Service bootstrap.yaml
spring:
application:
name: service
cloud:
config:
uri: http://config:8888
fail-fast: true
service.yaml (имеет конфигурацию службы)
server:
port: 8080
spring:
security:
user:
password: admin # doesnt set since no connection
Config Dockerfile
FROM openjdk:8-jdk-alpine
ADD target/config.jar /app.jar
CMD [ "java", "-Xmx200m", "-jar", "/app.jar" ]
EXPOSE 8888
Configapplication.yaml
spring:
application:
name: config
profiles:
active: composite
cloud:
config:
server:
composite:
- type: native
search-locations: classpath:/shared
server:
port: 8888
shared / service.yaml (имеет конфигурацию службы)
server:
port: 8080
spring:
security:
user:
password: admin # doesnt set since no connection
Есть идеи?
Я обнаружил некоторые похожие проблемы, хотя они имели толькопроблемы с их URI, мой установлен правильно. Микросервис не может связаться с сервером конфигурации на Docker Compose
Docker - SpringConfig - Соединение отказано в ConfigServer