日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DockerCompose-部署微服务集群

發布時間:2024/4/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DockerCompose-部署微服务集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

部署微服務集群

需求:將之前學習的cloud-demo微服務集群利用DockerCompose部署

實現思路

① 查看提供的cloud-demo文件夾,里面已經編寫好了docker-compose文件

② 修改自己的cloud-demo項目,將數據庫、nacos地址都命名為docker-compose中的服務名

③ 使用maven打包工具,將項目中的每個微服務都打包為app.jar

④ 將打包好的app.jar拷貝到cloud-demo中的每一個對應的子目錄中

⑤ 將cloud-demo上傳至虛擬機,利用 docker-compose up -d 來部署

compose文件

查看課前資料提供的cloud-demo文件夾,里面已經編寫好了docker-compose文件,而且每個微服務都準備了一個獨立的目錄:

內容如下:

version: "3.2"services:nacos:image: nacos/nacos-serverenvironment:MODE: standaloneports:- "8848:8848"mysql:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123volumes:- "$PWD/mysql/data:/var/lib/mysql"- "$PWD/mysql/conf:/etc/mysql/conf.d/"userservice:build: ./user-serviceorderservice:build: ./order-servicegateway:build: ./gatewayports:- "10010:10010"

可以看到,其中包含5個service服務:

  • nacos:作為注冊中心和配置中心

    • image: nacos/nacos-server: 基于nacos/nacos-server鏡像構建

    • environment:環境變量

      • MODE: standalone:單點模式啟動

    • ports:端口映射,這里暴露了8848端口

  • mysql:數據庫

    • image: mysql:5.7.25:鏡像版本是mysql:5.7.25

    • environment:環境變量

      • MYSQL_ROOT_PASSWORD: 123:設置數據庫root賬戶的密碼為123

    • volumes:數據卷掛載,這里掛載了mysql的data、conf目錄,其中有我提前準備好的數據

  • userservice、orderservice、gateway:都是基于Dockerfile臨時構建的

查看mysql目錄,可以看到其中已經準備好了cloud_order、cloud_user表:

查看微服務目錄,可以看到都包含Dockerfile文件: ?

內容如下: ?

FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar

修改微服務配置

因為微服務將來要部署為docker容器,而容器之間互聯不是通過IP地址,而是通過容器名。這里我們將order-service、user-service、gateway服務的mysql、nacos地址都修改為基于容器名的訪問。

如下所示:

spring:datasource:url: jdbc:mysql://mysql:3306/cloud_order?useSSL=falseusername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driverapplication:name: orderservicecloud:nacos:server-addr: nacos:8848 # nacos服務地址

打包

接下來需要將我們的每個微服務都打包。因為之前查看到Dockerfile中的jar包名稱都是app.jar,因此我們的每個微服務都需要用這個名稱。

可以通過修改pom.xml中的打包名稱來實現,每個微服務都需要修改:

<build><!-- 服務打包的最終名稱 --><finalName>app</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build>

打包后:

拷貝jar包到部署目錄

編譯打包好的app.jar文件,需要放到Dockerfile的同級目錄中。注意:每個微服務的app.jar放到與服務名稱對應的目錄,別搞錯了。

user-service:

?order-service:

gateway:

部署

最后,我們需要將文件整個cloud-demo文件夾上傳到虛擬機中,理由DockerCompose部署。

上傳到任意目錄:

部署:

進入cloud-demo目錄,然后運行下面的命令:

docker-compose up -d

總結

以上是生活随笔為你收集整理的DockerCompose-部署微服务集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。