Detaillierte Erläuterung zum Erreichen einer hohen Verfügbarkeit von Eureka durch Docker und Docker-Compose

Detaillierte Erläuterung zum Erreichen einer hohen Verfügbarkeit von Eureka durch Docker und Docker-Compose

In letzter Zeit wurden in neuen Projekten Springcloud und Docker verwendet. Ich werde diese beiden Technologien nicht separat vorstellen. Jetzt werde ich die Lösung zum Erreichen einer hohen Verfügbarkeit von Eureka durch Docker und Docker-Compose erläutern.

1. Eureka-Server-Projektverzeichnisstruktur:

Hohe Verfügbarkeit von Docker

2. Konfiguration der Eureka-Konfigurationsdatei:

Server:
 Port: 8900

Frühling:
 Anwendung:
  Name: Eureka-Server
 Profile:
  aktiv: dev

Management:
 Sicherheit:
  aktiviert: false
 Gesundheit:
  Kaninchen:
   aktiviert: false

---
Frühling:
 Profile: Entwickler

Heureka:
 Kunde:
  Dienst-URL:
   Standardzone: http://localhost:${server.port}/eureka/
  Registrieren bei Eureka: falsch
  Registrierung abrufen: false
 Beispiel:
  Hostname: localhost
  bevorzugte IP-Adresse: wahr

---
Frühling:
 Profile: test_ha_1

Heureka:
 Kunde:
  Dienst-URL:
   Standardzone: http://eurekaserver2:${server.port}/eureka/
 Beispiel:
  Hostname: eurekaserver1
# prefer-ip-address: true Wenn diese Konfiguration wahr ist, bedeutet dies, dass die IP bei Eureka registriert ist. In diesem Fall kann der Eureka-Server Replikate nicht über den Server finden.
# Wenn Sie also eine hohe Verfügbarkeit von Eureka über Docker erreichen möchten, verwenden Sie für diese Konfiguration am besten den Standardwert (false)
# Es ist nicht unmöglich, es auf „True“ zu konfigurieren und eine hohe Verfügbarkeit zu erreichen, aber jeder Eureka-Dienst muss außerhalb der Docker-Umgebung zugeordnet werden und die IP kennen.
---
Frühling:
 Profile: test_ha_2

Heureka:
 Kunde:
  Dienst-URL:
   Standardzone: http://eurekaserver1:${server.port}/eureka/
 Beispiel:
  Hostname: eurekaserver2
# bevorzugte IP-Adresse: true

3. Konfiguration des Docker Maven-Plugins:

 <Bauen>
    <Plugins>
      <Plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>Spring-Boot-Maven-Plugin</artifactId>
      </plugin>
      <Plugin>
        <groupId>com.spotify</groupId>
        <artifactId>Docker-Maven-Plugin</artifactId>
        <version>0.4.13</version>
        <Konfiguration>
          <imageName>${docker.image.prefix}/${project.artifactId}:${project.version}</imageName>
          <dockerDirectory>src/main/docker</dockerDirectory>
          <forceTags>wahr</forceTags>
          <Ressourcen>
            <Ressource>
              <Zielpfad>/</Zielpfad>
              <Verzeichnis>${project.build.directory}</Verzeichnis>
            </Ressource>
          </Ressourcen>
        </Konfiguration>
        <!--<groupId>com.spotify</groupId>
        <artifactId>Docker-Maven-Plugin</artifactId>
        <version>0.4.13</version>
        <Konfiguration>
          <imageName>itmuch/${project.artifactId}:${project.version}</imageName>
          <forceTags>wahr</forceTags>
          <baseImage>java</baseImage>
          <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
          <Ressourcen>
            <Ressource>
              <Zielpfad>/</Zielpfad>
              <Verzeichnis>${project.build.directory}</Verzeichnis>
              <include>${project.build.finalName}.jar</include>
            </Ressource>
          </Ressourcen>
        </configuration>-->
      </plugin>
    </plugins>
  </bauen>

4. Inhalt der Docker-Datei:

VON java:8

ADD eureka-server-1.0.0.jar eurekaserver.jar
EINSTIEGSPUNKT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/eurekaserver.jar"]

5. Generieren Sie das Eureka-Server-Image:

Generieren Sie das Eurekaserver-Image, indem Sie den Befehl mvn clean package docker:build wie folgt ausführen:

Hohe Verfügbarkeit von Docker

6. Orchestrierung über Docker-Compose:

Version: '2'
Leistungen:
 eurekaserver1:
  Bild: raynspace/eureka-server:1.0.0
  Häfen:
   - "7900:8900"
  Umfeld:
   – spring.profiles.active=test_ha_1

 eurekaserver2:
  Bild: raynspace/eureka-server:1.0.0
  #Hostname: eurekaserver2
  Häfen:
   - "7800:8900"
  Umfeld:
   - spring.profiles.active=test_ha_2

7. Springen Sie zum Projektverzeichnis und führen Sie den Befehl docker-compose up aus, um automatisch zwei Container für den Eureka-Server zu generieren:

Hohe Verfügbarkeit von Docker

8. Da der Eureka-Port zugeordnet wurde, greifen Sie über den Port lokal auf Eureka zu, um den Eureka-Dienststatus zu überprüfen:

Hohe Verfügbarkeit von Docker

Wie aus der obigen Abbildung ersichtlich, ist ein weiterer Eureka-Dienst sowohl in registrierten Replikaten als auch in verfügbaren Replikaten zu sehen. An diesem Punkt wird der Eureka-Cluster erstellt.

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:
  • So konfigurieren Sie Eureka im Docker

<<:  MySQL 5.7.10 Installationsdokumentation Tutorial

>>:  So lassen Sie eine Remoteverbindung in MySql zu

Artikel empfehlen

Detaillierte Erläuterung der MySQL-Indexauswahl und -Optimierung

Inhaltsverzeichnis Indexmodell B+Baum Indexauswah...

Drei Möglichkeiten, das horizontale Div-Layout auf beiden Seiten auszurichten

In diesem Artikel werden hauptsächlich drei Metho...

HTML + CSS + JS realisiert den Scroll-Gradienteneffekt der Navigationsleiste

Inhaltsverzeichnis Erster Blick auf die Wirkung: ...

Wie viele Daten können in einer MySQL-Tabelle gespeichert werden?

Programmierer müssen sich viel mit MySQL befassen...

MySQL-Lösung zum Erstellen eines horizontalen Histogramms

Vorwort Histogramme sind grundlegende statistisch...

Vue implementiert zwei Methoden zur Steuerung der Routing-Berechtigung

Inhaltsverzeichnis Methode 1: Routing von Metainf...

Zusammenfassung des Wissens zu MySQL-Sperren

Sperren in MySQL Sperren sind ein Mittel, um Ress...

So ändern Sie schnell das Root-Passwort unter CentOS8

Starten Sie die virtuelle Centos8-Maschine und dr...

Detaillierte Erklärung der allgemeinen For-Schleife in JavaScript-Anweisungen

Es gibt viele Schleifenanweisungen in JavaScript,...

js native Karussell-Plugin-Produktion

In diesem Artikel wird der spezifische Code für d...

Welche Schleife ist in JavaScript die schnellste?

Wenn wir wissen, welche For-Schleife oder welcher...

Einführung und Zusammenfassung der MySQL 8.0-Fensterfunktionen

Vorwort Vor MySQL 8.0 war es ziemlich mühsam, Dat...

Detaillierte Erklärung, wie zwei Node.js-Prozesse kommunizieren

Inhaltsverzeichnis Vorwort Kommunikation zwischen...