У меня есть 2 микросервиса: ms-config и ms-discovery. ms-config извлекает конфиги из репозитория Git (https://github.com/DavidGuimaraes/serasa-config-repo). Дело в том, что я просто не могу заставить ms-discovery успешно извлекать конфигурации из репо Git через службу ms-config.
ms-config - это следующее:
pom. xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>br.com.serasaconsumidor</groupId>
<artifactId>ms-config</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ms-config</name>
<description>Spring Cloud Configuration Server</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties
spring.application.name=ms-config
# Common port for Spring Cloud Config Server
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/DavidGuimaraes/serasa-config-repo
И, наконец, в удаленном репо Git , У меня есть файл ms-config.yml :
config:
app:
name: ms-config
server:
port: 8888
git:
uri:
local: ${HOME}/Git Projects/serasa-config-repo
remote: https://github.com/DavidGuimaraes/serasa-config-repo
uri: http://localhost:${config.server.port}
spring.application.name: ${config.app.name}
server.port: ${config.server.port}
spring.cloud.config.server.git.uri: ${config.server.git.uri.remote}
Когда дело доходит до ms-discovery, у меня есть следующее
pom. xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>br.com.serasaconsumidor</groupId>
<artifactId>ms-discovery</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ms-discovery</name>
<description>Spring Cloud (Eureka) Discovery Server</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
application.properties
spring.cloud.config.uri=${config.server.uri}
# spring.application.name=${name}
server.port=${discovery.server.port}
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
И, наконец, в удаленном репо Git, я у меня есть ms-discovery.yml файл:
config:
app:
name: ms-config
server:
port: 8888
git:
uri:
local: ${HOME}/Git Projects/serasa-config-repo
remote: https://github.com/DavidGuimaraes/serasa-config-repo
uri: http://localhost:${config.server.port}
spring.application.name: ${config.app.name}
server.port: ${config.server.port}
spring.cloud.config.server.git.uri: ${config.server.git.uri.remote}
Что я пробовал ...
- Использование файла application.yml в Git репозиторий и хранение всех конфигураций внутри него;
- Использование bootstrap .yml вместо application.yml и сохранение всех конфигураций внутри него;
- Удаление spring.application.name, сервера. порт, spring.cloud.config .server. git .uri, et c. из файлов, хранящихся в репозитории Git и сохраняющих там только строки c.
Очевидно, что здесь чего-то не хватает, но я не могу сказать, что именно. Я рассмотрел несколько вопросов, касающихся этой проблемы, и ничего не решает эту проблему в моем случае. Кто-нибудь может помочь, пожалуйста?