1. Einleitung Ich werde hier nicht näher auf Apollo eingehen. Auf der offiziellen Website https://github.com/ctripcorp/apollo wurde es bereits sehr deutlich erklärt. Ich werde es hier nicht erklären. Wenn Sie es noch nicht kennen, können Sie auf der offiziellen Website mehr erfahren. Dieser Artikel zeichnet lediglich auf, wie ich Apollo und seinen Cluster mithilfe von Docker bereitgestellt, es mit allen geteilt und eine Aufzeichnung für mich selbst erstellt habe. Hinweis: Ich habe mit der direkten Bereitstellung begonnen und die Datenbank gemäß der offiziellen Website selbst erstellt und initialisiert. 2. Quellcode-Kompilierung 2.1 Netzwerkstrategie Die Netzwerkrichtlinie kann direkt wie auf der offiziellen Website beschrieben verwendet werden. Bearbeiten Sie insbesondere apollo-configservice/src/main/resources/application.yml bzw. apollo-adminservice/src/main/resources/application.yml und fügen Sie dann die zu ignorierende Netzwerkkarte hinzu. Das folgende Beispiel zeigt, dass für apollo-configservice die Netzwerkkarten docker0 und veth.* ignoriert werden, wenn sie bei Eureka registriert sind. Frühling: Anwendung: Name: apollo-Konfigurationsdienst Profile: aktiv: ${apollo_profile} Wolke: inetutils: Ignorierte Schnittstellen: -docker0 -veth.* Hinweis: Gehen Sie beim Ändern von application.yml vorsichtig vor und machen Sie keine Fehler bei anderen Informationen, wie etwa spring.application.name. 2.2 Dynamisches Festlegen eines registrierten Netzwerks Wenn Sie Docker zum Erstellen eines Clusters verwenden, müssen sowohl Adminservice als auch Configservice ihre Adressen beim Registrierungscenter registrieren. Wenn die Registrierungs-IP nicht angegeben ist, wird das Netzwerk innerhalb von Docker registriert, was zu einer Netzwerktrennung führt. Fügen Sie den folgenden Code zu apollo-configservice/src/main/resources/bootstrap.yml und apollo-adminservice/src/main/resources/bootstrap.yml hinzu. Heureka: Beispiel: IP-Adresse: ${eureka.instance.ip-address} Der Wert wird hier aus der Umgebungsvariable übernommen und eine Konfiguration außerhalb des Containers bietet mehr Flexibilität bei der Bereitstellung. An diesem Punkt ist die Änderung des Quellcodes abgeschlossen und Sie können ihn direkt erstellen und verpacken, um die den drei Diensten entsprechenden ZIP-Pakete zu erhalten. Wenn Sie zu faul sind, es zu ändern, können Sie den geänderten Quellcode auch direkt von https://github.com/yuelicn/apollo herunterladen und direkt verpacken. 3. Dockerfile schreiben Das Dockerfile von Apollo ist sehr einfach, Sie können einfach das von der offiziellen Website bereitgestellte verwenden. Unten sehen Sie ein Beispiel für einen Adminservice. # Dockerfile für apollo-adminservice # Erstellen mit: # docker build -t apollo-adminservice . # Ausführen mit: # docker run -p 8090:8090 -d --name apollo-adminservice apollo-adminservice VON java:8-jre WARTUNGSMITARBEITER Louis ENV VERSION 1.5.0 Führen Sie apt-get install unzip aus. ADD apollo-adminservice-${VERSION}-github.zip /apollo-adminservice/apollo-adminservice-${VERSION}-github.zip AUSFÜHREN unzip /apollo-adminservice/apollo-adminservice-${VERSION}-github.zip -d /apollo-adminservice \ && rm -rf /apollo-adminservice/apollo-adminservice-${VERSION}-github.zip \ && sed -i '$d' /apollo-adminservice/scripts/startup.sh \ && echo "tail -f /dev/null" >> /apollo-adminservice/scripts/startup.sh EXPOSE 8090 CMD ["/apollo-adminservice/scripts/startup.sh"] Es ist zu beachten, dass 1: Die Version muss entsprechend der Version, die Sie verpacken, geändert werden Da die Dockerfile-Dateien der drei Dienste grundsätzlich gleich sind, gehe ich hier nicht näher darauf ein. Freunde, die es brauchen, können es direkt von https://github.com/yuelicn/docker-apollo herunterladen. 4 Docker-Compose schreiben 4.1 apollo-configservice-compose.yml Version: "3" Leistungen: apollo-Konfigurationsdienst: Containername: apollo-configservice Erstellen: apollo-configservice/ Bild: apollo-configservice Häfen: 8080: 8080 Bände: – „/docker/apollo/logs/100003171:/opt/logs/100003171“ Umfeld: – spring_datasource_url=jdbc:mysql://127.0.0.1:8306/ApolloConfigDB_TEST?characterEncoding=utf8 -spring_datasource_username=root -spring_datasource_password=mysql2019* -eureka.instance.ip-address=172.11.11.11 Neustart: immer Zu beachtende Punkte: 1: Geben Sie den Speicherort Ihrer Docker-Datei im Build an: Besonderer Hinweis: Vor dem Start empfiehlt es sich, den Wert eureka.service.url in ServerConfig in der ApolloConfigDB-Datenbank auf eine bestimmte IP zu ändern docker-compose -f apollo-configservice-compose.yml up --build -d 4.2 apollo-adminservice-compose.yml Der Inhalt von apollo-adminservice-compose.yml ist grundsätzlich derselbe wie der von apollo-configservice-compose.yml, daher werde ich sie hier nicht einzeln erklären. 4.3 apollo-portal-compose.yml Version: "3" Leistungen: Apollo-Portal: Containername: Apollo-Portal Build: Apollo-Portal/ Bild: Apollo-Portal Häfen: -8070:8070 Bände: – „/docker/apollo/logs/100003173:/opt/logs/100003173“ – „/apollo-portal/config/apollo-env.properties:/apollo-portal/config/apollo-env.properties“ Umfeld: – spring_datasource_url=jdbc:mysql://127.0.0.1:8306/ApolloPortalDB?characterEncoding=utf8 -spring_datasource_username=root -spring_datasource_password=mysql2019* Neustart: immer Notiz: docker-compose -f apollo-configservice-compose.yml up --build -d 4.3.1 apollo-env.properties local.meta=http://localhost:8080 dev.meta=${dev_meta} fat.meta=${fat_meta} uat.meta=${uat_meta} lpt.meta=${lpt_meta} pro.meta=${pro_meta} Konfigurieren Sie Ihre eigene Metaadresse. Wenn Sie keine haben, können Sie diese direkt löschen. Wenn Sie es nicht verstehen, können Sie auf der offiziellen Website weitere Informationen erhalten. Nachdem die Umgebung konfiguriert wurde, ändern Sie den Wert apollo.portal.envs in ApolloPortalDB.ServerConfig in der entsprechenden Datenbank und geben Sie Ihre konfigurierte Umgebung ein. Andernfalls können wir auf der Portalverwaltungsseite nur die Standardentwicklungsumgebung sehen. 5. Docker-compose.yml vervollständigen Wenn Ihnen das mühsame Einzelstarten nicht zusagt, können Sie auch mit einer fertigen Zusammenstellung beginnen. Version: "3" Leistungen: apollo-Konfigurationsdienst: Containername: apollo-configservice Erstellen: apollo-configservice/ Bild: apollo-configservice Häfen: 8080: 8080 Bände: – „/docker/apollo/logs/100003171:/opt/logs/100003171“ Umfeld: – spring_datasource_url=jdbc:mysql://47.xx.xx.209:8306/ApolloConfigDB?characterEncoding=utf8 -spring_datasource_username=root -spring_datasource_password=Tusdao@xx* -eureka.instance.ip-address=172.11.11.11 Neustart: immer apollo-Admindienst: Containername: apollo-adminservice Erstellen: apollo-adminservice/ Bild: apollo-adminservice Häfen: -8090:8090 Bände: – „/docker/apollo/logs/100003172:/opt/logs/100003172“ Umfeld: – spring_datasource_url=jdbc:mysql://47.xx.xx.209:8306/ApolloConfigDB?characterEncoding=utf8 -spring_datasource_username=root -spring_datasource_password=Tusdao@xx* -eureka.instance.ip-address=172.11.11.11 hängt ab von: - Apollo-Konfigurationsdienst Neustart: immer Apollo-Portal: Containername: Apollo-Portal Build: Apollo-Portal/ Bild: Apollo-Portal Häfen: -8070:8070 Bände: – „/docker/apollo/logs/100003173:/opt/logs/100003173“ – „/Apollo/docker-image/apollo-portal/config/apollo-env.properties:/apollo-portal/config/apollo-env.properties“ Umfeld: – spring_datasource_url=jdbc:mysql://47.xx.xx.209:8306/ApolloPortalDB?characterEncoding=utf8 -spring_datasource_username=root -spring_datasource_password=Tusdao@xx* hängt ab von: - Apollo-Adminservice Neustart: immer Hinweis: Die zu ändernden Stellen sind grundsätzlich die gleichen wie bei der Einzelnversion, daher gehe ich hier nicht näher darauf ein. An diesem Punkt ist die Docker-Bereitstellung von Apoll im Wesentlichen abgeschlossen. Wenn Sie eine vollständige Docker-Bereitstellungsdatei benötigen, gehen Sie bitte zu https://github.com/yuelicn/docker-apollo 6 Clusteraufbau Der Aufbau des Apollo-Clusters ist sehr einfach. Sie müssen nur zwei Stellen ändern. Zur Veranschaulichung verwenden wir die formale Umgebung (pro). 1: Schreiben Sie sowohl den eureka.service.url-Wert als auch die Eureka-Verbindungsinformationen durch Kommas getrennt in ServerConfig: http://IP-1:port/eureka, http://IP-2:port/eureka 2: Ändern Sie die Verbindungsinformationen der entsprechenden Umgebung in apollo-env.properties, beispielsweise: pro.meta=http://IP-1:port,http://IP-2:port. Die Adressen können durch Kommas getrennt werden. Starten Sie anschließend den Dienst neu und fertig. Abschließend wird betont, dass Adminservice und Configservice für jede Umgebung, einschließlich der Datenbank, separat bereitgestellt werden müssen. Es muss nur ein Portalsatz bereitgestellt werden. OK! Fertig. Das Obige ist mein persönlicher Build-Bericht. Ich hoffe, es hilft Ihnen. Wenn etwas falsch ist, korrigieren Sie mich bitte. Adresse des geänderten Quellcodes: https://github.com/yuelicn/apollo Der organisierte Docker-Apollo: https://github.com/yuelicn/docker-apollo Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: MySQL Server IO 100 % Analyse- und Optimierungslösung
>>: Fallstricke und Lösungen für das Upgrade von MySQL 5.7.23 in CentOS 7
1 Tomcat herunterladen und starten Gehen Sie auf ...
Jeder muss die Zusammensetzung des Boxmodells von...
Inhaltsverzeichnis BOM (Browserobjektmodell) 1. F...
Bevor Sie diesen Artikel lesen, hoffe ich, dass S...
Inhaltsverzeichnis 1 Einführung in nginx 1 Was is...
Aus der Tomcat-Konfigurationsdatei können wir ers...
Inhaltsverzeichnis ReactRouterV6-Änderungen 1. &l...
Beim Aktualisieren eines Datensatzes in MySQL ist...
1. Dokumentationsregeln 1. Groß-/Kleinschreibung b...
Vorwort Jede gute Angewohnheit ist ein Schatz. Di...
Zu lösendes Problem Hauptsächlich für die ebenenü...
Wirkung der Operation html <Kopf> <meta ...
PHP7 ist bereits seit einiger Zeit auf dem Markt ...
Installation mithilfe des MSI-Installationspakets...
Dieser Artikel zeichnet das grafische Tutorial zu...