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
Beim Erstellen einer Homepage, beispielsweise ein...
Inhaltsverzeichnis Datenträgernutzung anzeigen Da...
Inhaltsverzeichnis 1. Wo man JavaScript schreibt ...
Inhaltsverzeichnis Überblick Installieren Sie Gul...
Ich habe immer das Gefühl, dass Designer die sens...
In diesem Artikel finden Sie das Tutorial zur man...
In diesem Artikel wird der spezifische Code zur z...
MySQL begrenzt die Nutzung von Paging-Anweisungen...
Um die JSON-Daten in einem schönen eingerückten F...
Meine Umgebung: 3 centos7.5 1804 Meister 192.168....
JavaScript zeigt und verbirgt Bilder. Zu Ihrer In...
Vorwort In diesem Artikel verwenden wir Docker, u...
Ich möchte das Marquee-Tag verwenden, um das Scrol...
In diesem Artikel erfahren Sie, wie Sie Excel-Dat...
Standardmäßig sind MySQL-Zeichentypen nicht case-...