Pour la dernière version de Finchley, veuillez visiter:
https://www.fangzhipeng.com/springcloud/2018/08/07/sc-f7-config.html
Ou
http://blog.csdn.net/forezp/article/details/81041045
L'article précédent décrit comment un service lit les fichiers à partir du centre de configuration et comment le centre de configuration lit les fichiers de configuration à partir de git distant. Lorsqu'il existe de nombreuses instances de service, tous les fichiers sont lus à partir du centre de configuration. À ce stade, vous pouvez envisager de créer le centre de configuration dans un microservice est mis en cluster pour atteindre une haute disponibilité. Le diagramme d'architecture est le suivant:
1. Préparation
Continuez à utiliser le projet de l'article précédent pour créer un projet eureka-serveur à utiliser comme registre de services.
L'introduction initiale d'Eureka dans son fichier pom.xml dépend de spring-cloud-starter-eureka-server, le code est le suivant:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.forezp</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>eureka-server</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>com.forezp</groupId>
<artifactId>sc-f-chapter7</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<dependencies>
<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-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Dans le fichier de configuration application.yml, spécifiez le port de service comme 8889, plus la configuration de base comme registre de service, le code est le suivant:
server:
port: 8889
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
Classe d'entrée:
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
2. Transformer le serveur de configuration
Dans son fichier pom.xml plus la dépendance de démarrage d'EurekaClient sur spring-cloud-starter-eureka, le code est le suivant:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
Le fichier de configuration application.yml, l'adresse d'enregistrement du service spécifiée est http: // localhost: 8889 / eureka /, l'autre configuration est la même que l'article précédent, la configuration complète est la suivante:
spring.application.name=config-server
server.port=8888
spring.cloud.config.server.git.uri=https://github.com/forezp/SpringcloudConfig/
spring.cloud.config.server.git.searchPaths=respo
spring.cloud.config.label=master
spring.cloud.config.server.git.username= your username
spring.cloud.config.server.git.password= your password
eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/
Enfin, l'annotation @EnableEureka doit être ajoutée à la classe de démarrage Application du programme.
Troisièmement, transformer config-client
Micro-enregistrez-le dans le registre de service. En tant que client Eureka, vous avez besoin d'un fichier pom plus la dépendance initiale sur spring-cloud-starter-eureka. Le code est le suivant:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
Le fichier de configuration bootstrap.properties, faites attention au bootstrap. De plus, l'adresse d'enregistrement du service est http: // localhost: 8889 / eureka /
spring.application.name=config-client
spring.cloud.config.label=master
spring.cloud.config.profile=dev
#spring.cloud.config.uri= http://localhost:8888/
eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
server.port=8881
- spring.cloud.config.discovery.enabled consiste à lire le fichier à partir du centre de configuration.
- spring.cloud.config.discovery.serviceId Le servieId du centre de configuration, qui est le nom du service.
À ce stade, il s'avère que l'adresse IP n'est plus écrite lors de la lecture du fichier de configuration, mais le nom du service. À ce stade, si le service de configuration est déployé en plusieurs copies, l'équilibrage de charge est utilisé pour atteindre une haute disponibilité.
Démarrez tour à tour eureka-servr, config-server, config-client pour
accéder à l'URL: http: // localhost: 8889 /
Visitez http: // localhost: 8881 / hi, le navigateur affiche:
foo version 3
Téléchargez le code source de cet article:
https://github.com/forezp/SpringCloudLearning/tree/master/chapter7
Quatre, matériaux de référence
Lire la suite
Résumé des didacticiels SpringCloud les plus simples de l'histoire
Résumé du didacticiel SpringBoot
Résumé des questions d'entrevue Java