[Пружинные загрузочные микросервисы]
У меня в микросервисе есть 2 сервиса: ConfigService и DiscoveryService
- ConfigService включен ConfigServer, сохранить файлы конфигурации для микросервиса
- DiscoveryService - это EurekaServer. Он получит файл конфигурации от ConfigService
При запуске 2 сервиса на локальном (не на докере) все хорошо
Fetching config from server at: http://localhost:8088
Located environment: name=epl-discovery-service, profiles=[default], label=null, version=3f6887b5b355381341e02ad03615f2415d6a566d, state=null
Located property source: CompositePropertySource {name='configService', propertySources=[MapPropertySource {name='configClient'}, MapPropertySource {name='https://github.com/stomer90/epl-config-server.git/epl-discovery-service.yml'}]}
No active profile set, falling back to default profiles: default
но при запуске службы 2 на 2 контейнера (докер) ConfigService работает нормально, но DiscoveryService имеет некоторая ошибка (не удается подключиться к ConfigService)
Fetching config from server at: http://localhost:8088
Could not locate PropertySource: I/O error on GET request for "http://localhost:8088/epl-discovery-service/default": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
No active profile set, falling back to default profiles: default
EplConfigServiceApplication.java
Blockquote
@SpringBootApplication
@EnableConfigServer
public class EplConfigServiceApplication {
public static void main(String[] args) {
SpringApplication.run(EplConfigServiceApplication.class, args);
}
}
bootstrap.yml
server:
port: 8088
spring:
application:
name: eplconfigserver
cloud:
config:
server:
git:
uri: https://github.com/stomer90/epl-config-server.git
Dockerfile
FROM openjdk:8-jdk-alpine
MAINTAINER Phong Nguyen
VOLUME /tmp
# Add Spring Boot app.jar to Container
ADD ./target/epl-config-service-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar " ]
* DiscoveryService
EplDiscoveryServiceApplication.java
@SpringBootApplication
@EnableEurekaServer
public class EplDiscoveryServiceApplication {
public static void main(String[] args) {
SpringApplication.run(EplDiscoveryServiceApplication.class, args);
}
}
bootstrap.yml
spring:
application:
name: epl-discovery-service
cloud:
config:
uri: http://localhost:8088
Dockerfile
FROM openjdk:8-jdk-alpine
MAINTAINER Phong Nguyen
VOLUME /tmp
# Add Spring Boot app.jar to Container
ADD ./target/epl-discovery-service-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
version: '3.1'
services:
epl-config-service:
build: ./epl-config-service
ports:
- "8088:8088"
restart:
unless-stopped
epl-discovery-service:
build: ./epl-discovery-service
ports:
- "8061:8061"
environment:
- REGISTRY_HOST=epl-config-service
depends_on:
- epl-config-service
restart:
unless-stopped
Исходный код ссылки: https://github.com/stomer90/epl-spring-cloud-microservice
Пожалуйста, помогите мне решить эту проблему