Im vorherigen Blog haben wir die Konfigurationsdateien in unsere jeweiligen Dienste aufgenommen, aber es gibt einen Nachteil. Sobald die Konfiguration geändert wurde, müssen wir die Konfigurationsdateien herunterfahren und dann ändern, bevor wir online gehen. Wenn es nur wenige Dienste gibt, ist es verständlich, dies zu tun. Wenn es jedoch Hunderte von Diensten gibt, ist zu diesem Zeitpunkt ein verteiltes Konfigurationsmanagement erforderlich. Und Spring Cloud -Konfiguration wird erstellt, um dieses Problem zu lösen. Das Folgende ist eine Kombination aus GitLab zur Implementierung des Aufbaus eines verteilten Konfigurationszentrums. Das Feder Cloud Configuration Center besteht aus dem Serverende und dem Clientend.
Voraussetzung: Erstellen Sie eine neue Konfigurationsdatei configServer-dev.properties unter dem Projekt in GitLab
1. Konfigurieren Sie den Server
1. Fügen Sie Abhängigkeiten hinzu
<Depopentcy> <gruppe> org.springFramework.cloud </Groupid> <artifactId> Spring-Cloud-Config-Server </artifactid> </abhängig>
2. Aktivieren Sie die Unterstützung in der Anwendungs -Hauptklasse
@EnableConfigServer
3. Konfigurieren Sie die Datei application.yml
Server: Port: 8888 Spring: Anwendung: Name: Konfiguration Cloud: Konfiguration: Server: Git: URI: https://gitlab.xxx.com/xxxxx/xxxx.git # Konfigurieren Sie die Adresse des GitLab -Repositorys. Beachten Sie, dass die suchpfads: /config-repo # Die relative Adresse unter der GitLab-Repository-Adresse kann mit mehreren, gebrauchten und geteilten konfiguriert werden. Benutzername: Ihr Benutzername # GitLab Repository -Konto Passwort: Ihr Passwort # GitLab Repository Passwort
Hinweis: Wenn die Konfigurationsdatei im Stammverzeichnis des Git -Repositorys platziert ist, müssen der Parameter von SearchPaths nicht verwendet werden. Die Konfigurationsdatei in diesem Beispiel befindet sich im Verzeichnis config-Repo. Verwenden Sie daher den Parameter von SearchPaths, um den Konfigurationsserver aufzufordern, um nach dem Konfigurations-Repo-Unterverzeichnis zu suchen.
4. Starten Sie den Server und geben Sie http: // localhost: 8888/configServer/dev/master im Browser ein
{"Name": "ConfigServer", "Profiles": ["Dev"], "Label": "Master", "Version": "073CDA9CE85A300E406F4EBCC4651EE4D9B19", "Status": Null, "PropertySources": [{"Name": "https://gitlab.xxx.com/xxxxx/project/config-repo/configserver.properties", "Quelle": {"Name": "Chhliuxyh", "Hallo": "Ich bin der König der Welt !!!Sie können sehen, dass die Serverseite die Konfigurationsdatei bereits von GitLab lesen kann. Sie können in der folgenden Form auf Ressourcen auf GitLab zugreifen
/{application} /{profile} [ /{Label}] /<Application korrigierenGeben Sie beispielsweise ein: http: // localhost: 8888/configServer-dev.yml im Browser, und das Ergebnis lautet wie folgt:
Hallo: Ich bin der König der Welt !!! Name: Chhliuxyh-Profil: Profildefinierterault
2. Konfigurieren Sie den Client
1. Fügen Sie POM -Abhängigkeiten hinzu
<Depopentcy> <gruppe> org.springframework
2. Konfigurieren Sie die Datei stootstrap.yml
Hinweis: Die Konfigurationsdatei hier muss in der Datei stootstrap.Properties oder stootstrap.yml platziert werden, da die Konfiguration der Konfiguration Anwendung.Properties vorausgeht, und das Laden von Bootstrap.Properties ist auch nach Anwendung vorgegangen. Properties.
Server: Port: 8889 Spring: Anwendung: Name: configServer # Es muss mit dem Präfix der Konfigurationsdatei übereinstimmen. Zum Beispiel ist unser Konfigurationsdateiname hier ConfigServer-dev.Properties. Wir müssen sie daher als Konfigurationserver-Cloud konfigurieren: Konfiguration: URI: http: // localhost: 8888/// Konfigurieren Sie das URL-Profil des Spring Cloud Config Server: Dev # angeben
3. Überprüfen Sie den Kunden
Fügen Sie dem Client einen neuen Controller hinzu
Paket com.chhliu.springcloud.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootApplication; import org.springframework.cloud.context.config.annotation.refrescope; import org.springframework.web.bind.annotation.getMapping; import org.springframework.web.bind.annotation.restController; @SpringbootApplication @restController @ReFreshScope // Annotation @ReFreshScope zeigt an, dass der Konfigurationsclient auch den injizierten Eigenschaftswert aktualisiert, wenn die Serverkonfiguration die öffentliche Klasse SpringConFigConFigClientApplication {public static void Main (String [] argsAntaSaplication.Runica (SpringConcloudConfigconFigConFigclincing.Runication.Runica); } @Value ("$ {Hallo}") // Lesen Sie die Eigenschaften in der GitLab -Konfigurationsdatei. Wenn wir den Wert lesen, bedeutet dies, dass der Kunde in Ordnung ist, privates Zeichenfolgenprofil. @Getmapping ("/hello") public String hello () {return this.profile; }}Besuchen Sie den Browser: http: // localhost: 8889/Hallo, das Ergebnis ist wie folgt:
Ich bin der König der Welt !!!
Dies bedeutet, dass der Client den Wert bereits vom Server erhalten kann.
3.. Dynamische Aktualisierung
Aktualisieren Sie die Konfigurationen mit Spring Cloud -Konfigurationen, ohne den Client neu zu starten
1. Aktualisieren Sie den Eigenschaftswert, der dem Hello im Konfigurationserver-dev.Properties-Konfigurationsdatei im GitLab-Repository entspricht
2. Besuchen Sie http: // localhost: 8888/configServer/dev/master und stellen Sie fest, dass der serverseitige Inhalt aktualisiert wurde
3. Senden Sie eine Postanforderung an den Conf Client http: // localhost: 8889/aktualisieren und geben Sie 200 OK zurück. Besuchen Sie http: // localhost: 8889/Hallo noch einmal, es ist zu erkennen, dass der Leseattributwert dynamisch aktualisiert wurde, ohne den Client -Service neu zu starten.
PS: Um eine dynamische Aktualisierung zu erreichen, müssen Sie der POM -Datei den folgenden Starter hinzufügen
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactid> Spring-Boot-Starter-Actuator </artifactid> </abhängig>
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.