Maison  >  Article  >  Java  >  Pratique de conteneurisation des microservices Spring Cloud

Pratique de conteneurisation des microservices Spring Cloud

PHPz
PHPzoriginal
2023-06-22 23:39:541370parcourir

Avec le développement du cloud computing et de la technologie des conteneurs, ainsi que la popularité de l'architecture de microservices, de nombreuses entreprises ont commencé à utiliser des technologies de conteneurisation telles que Docker pour déployer des microservices. En tant que framework de microservices populaire, Spring Cloud évolue également progressivement vers la conteneurisation. Cet article présentera la pratique de la conteneurisation des microservices Spring Cloud.

1. Dockeriser les microservices Spring Boot

Tout d'abord, nous devons Dockeriser les microservices Spring Boot. Tout d’abord, nous devons écrire le Dockerfile. Voici un exemple simple de Dockerfile :

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

Dans ce Dockerfile, nous créons une image Docker basée sur OpenJDK 8, puis définissons un répertoire VOLUME et utilisons l'instruction ARG pour spécifier le chemin d'accès au package JAR. Enfin, nous copierons le package JAR dans le conteneur et spécifierons la commande ENTRYPOINT pour démarrer le microservice Spring Boot.

Ensuite, créez l'image Docker (en supposant que notre application Spring Boot s'appelle sample-microservice) à l'aide de la commande suivante :

docker build -t sample-microservice:1.0 .

Ensuite, nous pouvons exécuter le conteneur Docker à l'aide de la commande suivante :

docker run -p 8080:8080 sample-microservice:1.0

Ce sera sur l'hôte local Démarrez notre microservice Spring Boot sur le port 8080.

2. Utilisez Docker Compose pour déployer les microservices Spring Cloud

Docker Compose est un très bon outil qui peut facilement définir et déployer plusieurs conteneurs Docker. Ensuite, nous utiliserons Docker Compose pour déployer nos microservices Spring Cloud.

Tout d'abord, nous devons écrire le fichier docker-compose.yml. Dans ce fichier, nous devons définir l'image Docker, le port et les dépendances de chaque microservice. Voici un exemple de fichier docker-compose.yml simple :

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/

Dans ce fichier docker-compose.yml, nous définissons deux services : Eureka Server et Sample Microservice. Eureka Server est le centre d'enregistrement des microservices Spring Cloud. Nous utilisons l'image springcloud/eureka-server fournie par le site officiel de Spring Cloud. Sample Microservice est notre précédent microservice Dockerized Spring Boot, avec le port 8080. Nous avons également défini une variable d'environnement EUREKA_SERVER, pointant vers l'adresse du serveur Eureka.

Ensuite, utilisez la commande suivante pour démarrer Docker Compose :

docker-compose up

Cela démarrera et connectera automatiquement le serveur Eureka et l'échantillon de microservice. Nous pouvons arrêter et supprimer Docker Compose à l'aide des commandes suivantes :

docker-compose down

Résumé

Avec les étapes ci-dessus, nous pouvons facilement déployer nos microservices Spring Cloud à l'aide de Docker et Docker Compose. La conteneurisation rend nos microservices plus faciles à gérer et à déployer, et peuvent facilement s'exécuter dans différents environnements. De plus, l'utilisation de Docker Compose vous permet de créer des liens et des dépendances entre différents conteneurs. J'espère que cet article pourra vous aider à mieux comprendre et pratiquer la conteneurisation des microservices Spring Cloud.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn