Rumah  >  Artikel  >  Java  >  Amalan penampungan perkhidmatan mikro Spring Cloud

Amalan penampungan perkhidmatan mikro Spring Cloud

PHPz
PHPzasal
2023-06-22 23:39:541330semak imbas

Dengan pembangunan pengkomputeran awan dan teknologi kontena, dan populariti seni bina perkhidmatan mikro, banyak syarikat telah mula menggunakan teknologi kontena seperti Docker untuk menggunakan perkhidmatan mikro. Sebagai rangka kerja perkhidmatan mikro yang popular, Spring Cloud juga secara beransur-ansur bergerak ke arah kontena. Artikel ini akan memperkenalkan amalan kontena perkhidmatan mikro Spring Cloud.

1. Dockerize Spring Boot microservices

Pertama, kita perlu Dockerize Spring Boot microservices. Pertama, kita perlu menulis fail Docker. Berikut ialah contoh fail Docker yang mudah:

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

Dalam Fail Docker ini, kami mencipta imej Docker berdasarkan OpenJDK 8, kemudian tentukan direktori VOLUME dan gunakan arahan ARG untuk menentukan laluan ke pakej JAR . Akhir sekali, kami akan menyalin pakej JAR ke dalam bekas dan menentukan arahan ENTRYPOINT untuk memulakan perkhidmatan mikro Spring Boot.

Seterusnya, bina imej Docker menggunakan arahan berikut (dengan mengandaikan aplikasi Spring Boot kami dinamakan sample-microservice):

docker build -t sample-microservice:1.0 .

Kami kemudiannya boleh menjalankan bekas Docker menggunakan arahan berikut:

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

Ini akan memulakan perkhidmatan mikro Spring Boot kami pada port 8080 pada localhost.

2. Gunakan Docker Compose untuk menggunakan perkhidmatan mikro Spring Cloud

Docker Compose ialah alat yang sangat baik yang boleh mentakrif dan menggunakan berbilang bekas Docker dengan mudah. Seterusnya, kami akan menggunakan Docker Compose untuk menggunakan perkhidmatan mikro Spring Cloud kami.

Pertama, kita perlu menulis fail docker-compose.yml. Dalam fail ini, kita perlu mentakrifkan imej Docker, port dan kebergantungan bagi setiap perkhidmatan mikro. Berikut ialah contoh fail docker-compose.yml yang mudah:

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/

Dalam fail docker-compose.yml ini, kami mentakrifkan dua perkhidmatan: Eureka Server dan Sample Microservice. Eureka Server ialah pusat pendaftaran perkhidmatan mikro Spring Cloud Kami menggunakan springcloud/eureka-server imej yang disediakan oleh tapak web rasmi Spring Cloud. Sample Microservice ialah perkhidmatan mikro Dockerized Spring Boot kami yang terdahulu, dengan port 8080. Kami juga menentukan pembolehubah persekitaran EUREKA_SERVER, menunjuk ke alamat Pelayan Eureka.

Seterusnya, gunakan arahan berikut untuk memulakan Docker Compose:

docker-compose up

Ini akan secara automatik memulakan dan menyambungkan Pelayan Eureka dan Sample Microservice. Kami boleh menghentikan dan mengalih keluar Docker Compose menggunakan arahan berikut:

docker-compose down

Summary

Dengan langkah di atas, kami boleh menggunakan perkhidmatan mikro Spring Cloud kami dengan mudah menggunakan Docker dan Docker Compose. Pengkontenaan menjadikan perkhidmatan mikro kami lebih mudah untuk diurus dan digunakan serta boleh dijalankan dengan mudah dalam persekitaran yang berbeza. Selain itu, pautan dan kebergantungan antara bekas yang berbeza boleh dibuat menggunakan Docker Compose. Saya harap artikel ini dapat membantu anda memahami dengan lebih baik dan mengamalkan kontena perkhidmatan mikro Spring Cloud.

Atas ialah kandungan terperinci Amalan penampungan perkhidmatan mikro Spring Cloud. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn