Was ist das Apollo Configuration Center?Apollo ist ein Open-Source-Konfigurationsmanagement-Center, das von der Framework-Abteilung von Ctrip entwickelt wurde. Es kann die Konfiguration verschiedener Anwendungsumgebungen und Cluster zentral verwalten. Nachdem die Konfiguration geändert wurde, kann sie in Echtzeit an das Anwendungsende gesendet werden und verfügt über standardisierte Berechtigungen, Prozesssteuerung und andere Funktionen. Merkmale von Apollo
Apollo bietet eine einheitliche Schnittstelle zur zentralen Verwaltung der Konfiguration verschiedener Umgebungen, Cluster und Namespaces.
Nachdem der Benutzer die Konfiguration in Apollo geändert und veröffentlicht hat, kann der Client die neueste Konfiguration in Echtzeit (1 Sekunde) empfangen und die Anwendung benachrichtigen
Alle Konfigurationsversionen verfügen über ein Versionskonzept, das ein Konfigurations-Rollback problemlos unterstützt.
Unterstützt die Graustufenfreigabe von Konfigurationen. Wenn Sie beispielsweise auf „Freigeben“ klicken, wird dies nur auf einige Anwendungsinstanzen wirksam und nach einer gewissen Beobachtungszeit ohne Probleme an alle Anwendungsinstanzen übertragen.
Es gibt einen vollständigen Berechtigungsverwaltungsmechanismus für die Anwendungs- und Konfigurationsverwaltung. Die Konfigurationsverwaltung ist außerdem in zwei Teile unterteilt: Bearbeiten und Veröffentlichen, wodurch menschliche Fehler reduziert werden.
Sie können auf der Benutzeroberfläche leicht erkennen, welche Instanzen die Konfiguration verwenden.
Nativer .Net-Client, praktisch für die Anwendungsintegration und bietet eine HTTP-Schnittstelle, sodass auch Nicht-Java- und .Net-Anwendungen problemlos verwendet werden können
Apollo selbst bietet eine relativ vollständige einheitliche Konfigurationsverwaltungsschnittstelle, die Konfigurationsverwaltung für mehrere Umgebungen und mehrere Rechenzentren, Berechtigungen, Prozesssteuerung und andere Funktionen unterstützt. Aus Gründen der Universalität legt Apollo jedoch nicht zu viele Einschränkungen für Konfigurationsänderungen fest. Solange es dem Grundformat entspricht, kann es gespeichert werden. Es erfolgt keine gezielte Überprüfung verschiedener Konfigurationswerten wie Datenbankbenutzername, Kennwort, Redis-Dienstadresse usw. Für diese Art der Anwendungskonfiguration unterstützt Apollo die Anwendungspartei dabei, die Konfiguration in Apollo über die offene Plattform-API zu ändern und zu veröffentlichen, und verfügt über eine vollständige Autorisierungs- und Berechtigungskontrolle.
Als Basisdienst hat das Konfigurationscenter sehr hohe Verfügbarkeitsanforderungen, was erfordert, dass Apollo so wenig externe Abhängigkeiten wie möglich hat. Derzeit ist MySQL die einzige externe Abhängigkeit, daher ist die Bereitstellung sehr einfach. Solange Java und MySQL installiert sind, kann Apollo ausgeführt werden. Client-ArchitekturArchitektur und Module1: Der Konfigurationsdienst bietet Funktionen wie das Lesen und Pushen von Konfigurationen, und das Dienstobjekt ist der Apollo-Client
Der Server verwendet Spring DeferredResult, um Asynchronität zu erreichen, was die Anzahl langer Verbindungen erheblich erhöht. Die aktuelle Standardkonfiguration von Tomcat Embed beträgt maximal 10.000 Verbindungen (kann angepasst werden). Die virtuelle 4C8G-Maschine kann 10.000 Verbindungen unterstützen und erfüllt daher die Anforderungen (eine Anwendungsinstanz initiiert nur eine lange Verbindung).
2. Der Admin-Dienst bietet Funktionen wie Konfigurationsänderung und -veröffentlichung und sein Dienstobjekt ist das Apollo-Portal (Verwaltungsschnittstelle).
3. Metaserver Wir haben einen Metaserver auf Eureka aufgebaut, um Eurekas Service-Discovery-Schnittstelle zu kapseln
Viertens: Eine Service-Discovery-Komponente von Eureka Java
Fünf: Portal
6. Kunde
einsetzen
öffentliche Aufzählung Env{ LOKAL, DEV, FWS, FAT, UAT, LPT, PRO, TOOLS, UNBEKANNT, DEVMT; öffentliche statische Umgebung von String (String-Umgebung) { Env-Umgebung = EnvUtils.transformEnv(env); Preconditions.checkArgument(Umgebung != UNBEKANNT, String.format("Umgebung %s ist ungültig", Umgebung)); Umgebung zurückgeben; } } öffentliche letzte Klasse EnvUtils { öffentliche statische Umgebung transformEnv(String envName) { wenn (StringUtils.isBlank(envName)) { gibt Env.UNKNOWN zurück; } Schalter (Umgebungsname.trim().toUpperCase()) { Fall "LPT": Umschlag LPT zurückgeben; Fall "FAT": Fall „FWS“: Env.FAT zurückgeben; Fall "UAT": Env.UAT zurückgeben; Fall "PRO": Fall "PROD": //nur für den Fall Env.PRO zurückgeben; Fall "DEV": Env.DEV zurückgeben; Fall "LOKAL": gibt Env.LOCAL zurück; Fall "WERKZEUGE": Env.TOOLS zurückgeben; Fall "DEVMT": Env.DEVMT zurückgeben; Standard: gibt Env.UNKNOWN zurück; } } } private void initialisieren() { Eigenschaften-Eigenschaft = neue Eigenschaften(); prop = ResourceUtils.readConfigFile("apollo-env.properties", prop); domains.put(Env.LOCAL, getMetaServerAddress(prop, "local_meta", "local.meta")); domains.put(Env.DEV, getMetaServerAddress(prop, "dev_meta", "dev.meta")); domains.put(Env.FAT, getMetaServerAddress(prop, "fat_meta", "fat.meta")); domains.put(Env.UAT, getMetaServerAddress(prop, "uat_meta", "uat.meta")); domains.put(Env.LPT, getMetaServerAddress(prop, "lpt_meta", "lpt.meta")); domains.put(Env.PRO, getMetaServerAddress(prop, "pro_meta", "pro.meta")); domains.put(Env.SIT, getMetaServerAddress(prop, "devmt_meta", "devmt.meta")); } Überprüfen Sie, installieren Sie JAVA JDK und Maven, öffnen Sie den Quellcode-Ordner Scripts und führen Sie die Build-Datei aus, um Apollo zu kompilieren und zu verpacken Kopieren Sie apollo-configservice/target, apollo-adminservice/target, apollo-portal/target, die ZIP-Dateien und das Dockerfile unter den Dateien in den angegebenen Ordner, wie unten gezeigt Ändern Sie die Versionsnummern der Dateien Configservice, Adminservice, Portal und Dockerfile, sodass sie mit den Versionsnummern der ZIP-Dateien übereinstimmen. Suchen Sie das SQL-Bereitstellungsskript im Ordner „Scripts“ des Quellcodes und führen Sie es in MySQL aus. Ändern Sie apolloconfigdb. Die Adresse von eureka.service.url ist die Adresse, unter der Configservice bereitgestellt wird, z. B. http://192.168.xx.xxx:8081/eureka/. Ändern Sie die Datei apollo.portal.envs des Portals in: Umgebungsvariablen für die Bereitstellung in mehreren Umgebungen, wie dev, devmt Ändern Sie die Adresse apollo.portal.meta.servers des Portals in die Adresse des bereitgestellten Configservice, zum Beispiel { "DEV":"http://192.168.xx.xxx:8081", "DEVMT":"http://192.168.xx.xxx:8082" } Schreiben Sie docker-compose.yml Version: "3" Leistungen: apollo-Konfigurationsdienst: Containername: apollo-configservice Erstellen: apollo-configservice/ Bild: apollo-configservice Häfen: -8081:8080 Bände: – /root/apollo/apollocompose/logs:/opt/logs Umfeld: - SPRING_DATASOURCE_URL= jdbc:mysql://192.168.xx.xxx:3306/apolloconfigdbdev?characterEncoding=utf8&serverTimezone=Asia/Shanghai -SPRING_DATASOURCE_USERNAME=xxxxxx -SPRING_DATASOURCE_PASSWORD=xxxxxx apollo-Admindienst: Containername: apollo-adminservice Erstellen: apollo-adminservice/ Bild: apollo-adminservice Häfen: -8091:8090 Bände: – /root/apollo/apollocompose/logs:/opt/logs Umfeld: - SPRING_DATASOURCE_URL= jdbc:mysql://192.168.xx.xxx:3306/apolloconfigdbdev?characterEncoding=utf8&serverTimezone=Asia/Shanghai -SPRING_DATASOURCE_USERNAME=xxxxxx -SPRING_DATASOURCE_PASSWORD=xxxxxx apollo-Konfigurationsservice-uat: Containername: apollo-configservice-uat Erstellen: apollo-configservice/ Bild: apollo-configservice Häfen: -8082:8080 Bände: – /root/apollo/apollocompose/logs:/opt/logs Umfeld: - SPRING_DATASOURCE_URL= jdbc:mysql://192.168.xx.xxx:3306/apolloconfigdbuat?characterEncoding=utf8&serverTimezone=Asia/Shanghai -SPRING_DATASOURCE_USERNAME=xxxxxx -SPRING_DATASOURCE_PASSWORD=xxxxxx apollo-adminservice-uat: Containername: apollo-adminservice-uat Erstellen: apollo-adminservice/ Bild: apollo-adminservice Häfen: -8092:8090 Bände: – /root/apollo/apollocompose/logs:/opt/logs Umfeld: - SPRING_DATASOURCE_URL= jdbc:mysql://192.168.xx.xxx:3306/apolloconfigdbuat?characterEncoding=utf8&serverTimezone=Asia/Shanghai -SPRING_DATASOURCE_USERNAME=xxxxxx -SPRING_DATASOURCE_PASSWORD=xxxxxx Apollo-Portal: Containername: Apollo-Portal Build: Apollo-Portal/ Bild: Apollo-Portal Neustart: immer hängt ab von: - Apollo-Adminservice Umfeld: - SPRING_DATASOURCE_URL= jdbc:mysql://192.168.xx.xxx:3306/apolloportaldb?characterEncoding=utf8&serverTimezone=Asia/Shanghai -SPRING_DATASOURCE_USERNAME=xxxxxx -SPRING_DATASOURCE_PASSWORD=xxxxxx Bände: – /root/apollo/apollocompose/logs:/opt/logs - /root/apollo/apollocompose/apollo-env.properties:/apollo-portal/config/apollo-env.properties Häfen: -8071:8070 Ändern Sie die lokale Umgebungsvariablenkonfiguration von apollo-env.properties so, dass sie mit der benutzerdefinierten Konfiguration oder den von Ctrip definierten Umgebungsvariablen übereinstimmt. dev.meta=http://localhost:8081 devmt.meta=http://localhost:8082 Führen Sie Docker-Compose aus. Es gibt eine Verzögerung beim Start. Warten Sie etwas länger FallstrickeFür benutzerdefinierte Umgebungsvariablen müssen Quellcode, Kompilierung, SQL-Skripte und Datenbankverbindungskonfiguration heruntergeladen werden. Verwenden Sie unbedingt die neueste Verbindungskonfiguration auf der offiziellen Website. Unterschiedliche Versionen können inkonsistente SQL-Skripte aufweisen. Die Bereitstellungsmaschine muss über ausreichend Arbeitsspeicher verfügen. Nach der Bereitstellung und dem Start müssen Configservice, Adminservice, Portal, Mata Service und Eureka kommunizieren, sodass es nach dem Start zu einer Verzögerung kommt. Warten Sie eine Weile, um zu sehen, ob die Bereitstellung erfolgreich war. Für Serverports muss die Firewall die entsprechenden Ports 8080, 8090, 8071 und die von Ihnen angegebenen Ports öffnen. StudienlinksArtikel zur Architekturanalyse von Herrn Yang Bo: https://blog.csdn.net/yang75108/article/details/86989524?spm=1001.2014.3001.5501 Apollo-Designdokumentation: https://www.apolloconfig.com/ Apollo erstellt eine benutzerdefinierte Umgebung: https://www.jianshu.com/p/f84da093944f Oben sind die Details der Docker-Compose-Bereitstellung der benutzerdefinierten Apollo-Umgebung aufgeführt. Weitere Informationen zur Docker-Compose-Bereitstellung der Apollo-Umgebung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
>>: Zehn Erfahrungen im Webdesign im Jahr 2008
1. Überprüfen Sie, ob das Modul „Status prüfen“ i...
Inhaltsverzeichnis 1. Behandeln Sie Objekte nicht...
1. Linux unter VMware Workstation: 1. Quelle aktu...
Swap deaktivieren Wenn auf dem Server ein Datenba...
Der Ogg-Prozess einer vor einiger Zeit erstellten...
Dieser Artikel beschreibt, wie man die PHP-Curl-E...
Der Befehl zum Löschen von Bildern im Docker laut...
Vorwort Wenn die HTML-Struktur einer Seite viele ...
1. Suchen Sie im Browser nach MySQL, um es herunt...
Dieser Artikel fasst einige gängige MySQL-Optimie...
Wenn Sie Docker verwenden, suchen Sie in Docker n...
Inhaltsverzeichnis Das Prinzip und die Funktion d...
Inhaltsverzeichnis Vorwort Vorbereiten Umsetzungs...
Inhaltsverzeichnis Manipulationssicheres Javascri...
Einführung: Dieser Artikel verwendet das von reac...