Detaillierte Erläuterung des Prozesses zum Bereitstellen des verteilten Konfigurationscenters Apollo mit einem Klick mithilfe von Docker Compose

Detaillierte Erläuterung des Prozesses zum Bereitstellen des verteilten Konfigurationscenters Apollo mit einem Klick mithilfe von Docker Compose

Einführung

Wenn wir über Verteilung sprechen, müssen wir an verteilte Konfigurationszentren, verteilte Protokolle, verteilte Linkverfolgung usw. denken.

Bei verteilter Bereitstellung haben Unternehmen oft viele Konfigurationen. Wenn beispielsweise eine Anwendung gestartet und ausgeführt wird, muss sie einige Konfigurationsinformationen lesen. Die Konfiguration begleitet grundsätzlich den gesamten Lebenszyklus der Anwendung. Beispielsweise müssen Datenbankverbindungsparameter, Startparameter usw. alle verwaltet und konfiguriert werden, aber es ist unmöglich, sich bei jedem Server anzumelden, um die Konfiguration durchzuführen. Heute möchte ich Ihnen das verteilte Konfigurationszentrum Apollo vorstellen:

Apollo ist ein verteiltes Konfigurationszentrum, 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. Es verfügt außerdem über standardisierte Berechtigungen, Prozesssteuerung und andere Funktionen und eignet sich für Szenarien zur Konfigurationsverwaltung von Mikroservices.

Bauen

Es gibt zwei Möglichkeiten zum Erstellen in der offiziellen Dokumentation: Eine besteht darin, den Quellcode zum Erstellen herunterzuladen, und die andere darin, Docker oder K8S zum Erstellen zu verwenden. Heute verwenden wir Docker zum Erstellen, schließlich ist Docker entwicklerfreundlicher.

Wenn Sie bereits über einen MySQL-Dienst verfügen, empfiehlt es sich, den vorhandenen MySQL-Dienst oder den Cloud-Dienst RDS als Datenbank zu verwenden. Schließlich sind Daten unbezahlbar.

Version: "3"
Leistungen:
  apollo-configservice: #Config Service bietet Funktionen wie das Lesen und Pushen von Konfigurationen. Das Serviceobjekt ist das Apollo-Clientimage: apolloconfig/apollo-configservice:1.8.1
    Neustart: immer
    #Containername: apollo-Konfigurationsservice
    Bände:
          - ./logs/apollo-configservice:/opt/logs
    Häfen:
      - „8080:8080“
    Umfeld:
      - TZ='Asien/Shanghai'    
      -SERVER_PORT=8080
      – EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx
      - EUREKA_INSTANCE_HOME_PAGE_URL=http://xxx.xxx.xxx.xxx:8080
      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai
      -SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!
      
      
  apollo-adminservice: #Der Admin-Dienst bietet Funktionen wie Konfigurationsänderung und -veröffentlichung, und das Dienstobjekt ist das Apollo-Portal (Verwaltungsschnittstelle).
    Bild: apolloconfig/apollo-adminservice:1.8.1
    Neustart: immer
    #Containername: apollo-Adminservice
    Bände:
      – ./logs/apollo-adminservice:/opt/logs
    Häfen:
      - „8090:8090“
    hängt ab von:
      - Apollo-Konfigurationsdienst
    Umfeld:
      - TZ='Asien/Shanghai'    
      -SERVER_PORT=8090
      – EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx
      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai
      -SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!
      
      
  apollo-portal: #Verwaltungsschnittstellenbild: apolloconfig/apollo-portal:1.8.1
    Neustart: immer
    Containername: Apollo-Portal
    Bände:
      – ./logs/apollo-portal:/opt/logs
    Häfen:
      - „8070:8070“
    hängt ab von:
      - Apollo-Adminservice
    Umfeld:
      - TZ='Asien/Shanghai'    
      -SERVER_PORT=8070
      – EUREKA_INSTANCE_IP_ADDRESS=xxx.xxx.xxx.xxx
      -APOLLO_PORTAL_ENVS=Entwickler
      – DEV_META=http://xxx.xxx.xxx.xxx:8080
      - SPRING_DATASOURCE_URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai
      -SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=MysqkPassWord!

Aus der obigen Datei docker-compose.yaml können wir ersehen, dass es insgesamt 3 Dienste gibt, nämlich:

  1. Der Konfigurationsdienst bietet Funktionen wie das Lesen und Pushen von Konfigurationen und sein Dienstobjekt ist der Apollo-Client.
  2. Der Admin-Dienst bietet Funktionen wie Konfigurationsänderung und -veröffentlichung und sein Dienstobjekt ist das Apollo-Portal (Verwaltungsschnittstelle).
  3. Portal (Verwaltungsschnittstelle)

Wenn Sie wissen möchten, wie sie funktionieren, empfiehlt es sich, die offizielle Dokumentation zu lesen

Protokolle werden im externen Verzeichnis ./logs bereitgestellt.

Sie können sehen, dass die Bereitstellung von MySQL oben nicht angegeben ist. Wenn Sie zum Bereitstellen von MySQL einen Container verwenden müssen, können Sie auf die folgende Datei docker-compose.yaml verweisen.

Version: '3'

Leistungen: 

  mysql: # myslq-Datenbankimage: 'mysql/mysql-server'
    Containername: "mysql"
    Neustart: immer
    Befehl: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower-case-table-names=1
    Umgebung: #Umgebungsvariable MYSQL_ROOT_HOST: "%" 
      MYSQL_ROOT_PASSWORD: Passwort
      MYSQL_USER: Bach
      MYSQL_PASSWORD: Passwort
    Häfen:
      - „3306:3306“

Die obige mysql docker-compose.yaml dient nur zu Testzwecken

Initialisieren Sie die Datenbanken apolloconfigdb.sql und apolloportaldb.sql

Denken Sie nach der Initialisierung der Datenbank daran, die eureka.service.url der Serverconfig-Tabelle in der Apolloconfigdb-Bibliothek zu ändern. Andernfalls kann Apollo-Adminservice nicht bei Eureka registriert werden.

Wechseln Sie nach der Änderung in das Apollo-Verzeichnis docker-compose.yaml und verwenden Sie

docker-compose up -d #Starten Sie die drei Dienste in der Datei und führen Sie sie im Hintergrund aus

Überprüfen des Startstatus

Docker-Compose PS

Besuchen Sie http://10.0.0.53:8070/ #Apollo-Verwaltungsterminal

Standardbenutzername: apollo
Standardkennwort: admin

Erstellen eines Testprojekts


prüfen

Erstellen Sie ein .NetCore-Projekt und fügen Sie den Apollo.net-Client hinzu

Apollo hinzufügen

Konfigurieren Sie Apollo

Konfiguration wie oben

Fügen Sie Testinhalte hinzu, um den Apollo-Code zu erhalten

Starten Sie das Programm und rufen Sie /weatherforecast/apollotest auf

Es wurde festgestellt, dass die in Apollo festgelegte Konfiguration nicht abgerufen wurde

Überprüfen Sie Apollo und stellen Sie fest, dass der konfigurierte Wert nicht veröffentlicht wird

Daher muss jeder daran denken, nach der Konfiguration oder Änderung von Apollo zu veröffentlichen. Wir werden den Browser nach der Veröffentlichung erneut aktualisieren.

Es wurde festgestellt, dass die Daten bereits neu sind. Lassen Sie uns Apollos Wert erneut ändern.

Aktualisieren

Apollo wurde gebaut und ist einsatzbereit.

Code

Der Code im Beispiel lautet
https://github.com/yuefengkai/Brook.Apollo
Willkommen alle, um zu beginnen

Hinweis: Wenn die Konfiguration nach dem Start des Programms nicht abgerufen werden kann, können Sie das Apollo-Protokoll öffnen. Sie können die detaillierte Konfiguration in der Konsole anzeigen und in die erste Zeile der Hauptfunktion von Program.cs einfügen!

LogManager.UseConsoleLogging(Com.Ctrip.Framework.Apollo.Logging.LogLevel.Trace);

siehe

1. https://github.com/apolloconfig/apollo.net
2. https://github.com/apolloconfig/apollo
3. https://github.com/apolloconfig/apollo/tree/master/scripts/docker-quick-start

Dies ist das Ende dieses Artikels über die Docker Compose-Bereitstellung mit einem Klick des verteilten Konfigurationscenters Apollo. Weitere verwandte Inhalte zur Docker Compose-Bereitstellung des verteilten Konfigurationscenters Apollo finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Beispiele für das Schreiben von Docker-Compose-Konfigurationsdateien und die Verwendung von Befehlen
  • Verwenden von Docker Compose zum Erstellen und Bereitstellen des ElasticSearch-Konfigurationsprozesses
  • Docker-Compose-Installationsmethode für die YML-Dateikonfiguration
  • Detailliertes Tutorial zur Docker-Compose-Bereitstellung und Konfiguration von Jenkins
  • So installieren und konfigurieren Sie das Orchestrierungstool Docker Compose in Docker.v19
  • Docker-Compose-Schritte zum Konfigurieren der Spring-Umgebung
  • Detaillierte Erklärung der Softwarekonfiguration mit Docker-Compose unter Linux
  • Detaillierte Erklärung der Docker Compose-Konfigurationsdateiparameter

<<:  Vue implementiert die Internationalisierung der Sprachumschaltung für Webseiten

>>:  Mysql verwendet gespeicherte Prozeduren, um schnell Millionen von Datenbeispielcodes hinzuzufügen

Artikel empfehlen

Implementierung des Pycharm-Installationstutorials auf Ubuntu 18.04

Methode 1: Pycharm herunterladen und installieren...

Eine kurze Analyse des Funktionsaufrufprozesses unter der ARM-Architektur

Inhaltsverzeichnis 1. Hintergrundwissen 1. Einfüh...

Ausnahmefehler beim Packen von Webpack-Dateien

Vor dem Verpacken im Webpack müssen wir sicherste...

Detaillierte Erklärung der dynamischen Komponenten von vue.js

:ist eine dynamische Komponente Verwenden Sie v-b...

Entwickeln Sie Beispielcode für einen Taschenrechner mit nativem JavaScript

Die Hauptfunktion eines Rechners besteht darin, n...

Native JS-Canvas zum Erzielen einer einfachen Schlange

In diesem Artikel wird der spezifische Code von J...

Detaillierte Erklärung der Dreieckszeichnung und clevere Anwendungsbeispiele in CSS

führen Einige gängige Dreiecke auf Webseiten könn...