(Turn) Le didacticiel Spring Cloud le plus simple de l'histoire | Partie 7: Centre de configuration distribué hautement disponible (Spring Cloud Config)

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

spring_cloud_config

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

 

 

 

Je suppose que tu aimes

Origine blog.csdn.net/u014225733/article/details/100582871
conseillé
Classement