Mit der Entwicklung von Cloud Computing und Container-Technologie und der Popularität der Microservice-Architektur haben viele Unternehmen begonnen, Containerisierungstechnologien wie Docker für die Bereitstellung von Microservices zu nutzen. Als beliebtes Microservice-Framework bewegt sich Spring Cloud auch schrittweise in Richtung Containerisierung. In diesem Artikel wird die Praxis der Spring Cloud-Microservice-Containerisierung vorgestellt.
1. Spring Boot-Microservices dockerisieren
Zuerst müssen wir Spring Boot-Microservices dockerisieren. Zuerst müssen wir die Docker-Datei schreiben. Das Folgende ist ein einfaches Dockerfile-Beispiel:
FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
In dieser Dockerfile erstellen wir ein Docker-Image basierend auf OpenJDK 8, definieren dann ein VOLUME-Verzeichnis und verwenden die ARG-Anweisung, um den Pfad zum JAR-Paket anzugeben. Abschließend kopieren wir das JAR-Paket in den Container und geben den Befehl ENTRYPOINT an, um den Spring Boot-Mikrodienst zu starten.
Als nächstes erstellen Sie das Docker-Image (vorausgesetzt, unsere Spring Boot-Anwendung heißt „sample-microservice“) mit dem folgenden Befehl:
docker build -t sample-microservice:1.0 .
Dann können wir den Docker-Container mit dem folgenden Befehl ausführen:
docker run -p 8080:8080 sample-microservice:1.0
Dieser wird auf dem lokalen Host sein Starten Sie unseren Spring Boot-Microservice auf Port 8080.
2. Verwenden Sie Docker Compose, um Spring Cloud-Microservices bereitzustellen.
Docker Compose ist ein sehr gutes Tool, mit dem problemlos mehrere Docker-Container definiert und bereitgestellt werden können. Als Nächstes werden wir Docker Compose verwenden, um unsere Spring Cloud-Microservices bereitzustellen.
Zuerst müssen wir die Datei docker-compose.yml schreiben. In dieser Datei müssen wir das Docker-Image, den Port und die Abhängigkeiten jedes Mikrodienstes definieren. Hier ist ein Beispiel einer einfachen docker-compose.yml-Datei:
version: '3' services: eureka-server: image: springcloud/eureka-server ports: - "8761:8761" sample-microservice: image: sample-microservice:1.0 ports: - "8080:8080" depends_on: - eureka-server environment: - EUREKA_SERVER=http://eureka-server:8761/eureka/
In dieser docker-compose.yml-Datei definieren wir zwei Dienste: Eureka Server und Sample Microservice. Eureka Server ist das Spring Cloud-Mikroservice-Registrierungszentrum. Wir verwenden das Bild springcloud/eureka-server, das von der offiziellen Spring Cloud-Website bereitgestellt wird. Sample Microservice ist unser früherer Dockerized Spring Boot-Microservice mit Port 8080. Wir haben außerdem eine Umgebungsvariable EUREKA_SERVER definiert, die auf die Adresse des Eureka-Servers verweist.
Als nächstes verwenden Sie den folgenden Befehl, um Docker Compose zu starten:
docker-compose up
Dadurch werden der Eureka-Server und der Beispiel-Microservice automatisch gestartet und verbunden. Wir können Docker Compose mit den folgenden Befehlen stoppen und entfernen:
docker-compose down
Zusammenfassung
Mit den oben genannten Schritten können wir unsere Spring Cloud-Microservices einfach mit Docker und Docker Compose bereitstellen. Durch die Containerisierung sind unsere Microservices einfacher zu verwalten und bereitzustellen und können problemlos in verschiedenen Umgebungen ausgeführt werden. Darüber hinaus können Sie mit Docker Compose Verknüpfungen und Abhängigkeiten zwischen verschiedenen Containern erstellen. Ich hoffe, dieser Artikel kann Ihnen helfen, die Containerisierung von Spring Cloud-Mikrodiensten besser zu verstehen und zu üben.
Das obige ist der detaillierte Inhalt vonContainerisierungspraxis von Spring Cloud-Mikrodiensten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!