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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DockerCompose-部署微服务集群

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

部署微服務(wù)集群

需求:將之前學(xué)習(xí)的cloud-demo微服務(wù)集群利用DockerCompose部署

實(shí)現(xiàn)思路

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

② 修改自己的cloud-demo項(xiàng)目,將數(shù)據(jù)庫(kù)、nacos地址都命名為docker-compose中的服務(wù)名

③ 使用maven打包工具,將項(xiàng)目中的每個(gè)微服務(wù)都打包為app.jar

④ 將打包好的app.jar拷貝到cloud-demo中的每一個(gè)對(duì)應(yīng)的子目錄中

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

compose文件

查看課前資料提供的cloud-demo文件夾,里面已經(jīng)編寫好了docker-compose文件,而且每個(gè)微服務(wù)都準(zhǔn)備了一個(gè)獨(dú)立的目錄:

內(nèi)容如下:

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個(gè)service服務(wù):

  • nacos:作為注冊(cè)中心和配置中心

    • image: nacos/nacos-server: 基于nacos/nacos-server鏡像構(gòu)建

    • environment:環(huán)境變量

      • MODE: standalone:單點(diǎn)模式啟動(dòng)

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

  • mysql:數(shù)據(jù)庫(kù)

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

    • environment:環(huán)境變量

      • MYSQL_ROOT_PASSWORD: 123:設(shè)置數(shù)據(jù)庫(kù)root賬戶的密碼為123

    • volumes:數(shù)據(jù)卷掛載,這里掛載了mysql的data、conf目錄,其中有我提前準(zhǔn)備好的數(shù)據(jù)

  • userservice、orderservice、gateway:都是基于Dockerfile臨時(shí)構(gòu)建的

查看mysql目錄,可以看到其中已經(jīng)準(zhǔn)備好了cloud_order、cloud_user表:

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

內(nèi)容如下: ?

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

修改微服務(wù)配置

因?yàn)槲⒎?wù)將來要部署為docker容器,而容器之間互聯(lián)不是通過IP地址,而是通過容器名。這里我們將order-service、user-service、gateway服務(wù)的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服務(wù)地址

打包

接下來需要將我們的每個(gè)微服務(wù)都打包。因?yàn)橹安榭吹紻ockerfile中的jar包名稱都是app.jar,因此我們的每個(gè)微服務(wù)都需要用這個(gè)名稱。

可以通過修改pom.xml中的打包名稱來實(shí)現(xiàn),每個(gè)微服務(wù)都需要修改:

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

打包后:

拷貝jar包到部署目錄

編譯打包好的app.jar文件,需要放到Dockerfile的同級(jí)目錄中。注意:每個(gè)微服務(wù)的app.jar放到與服務(wù)名稱對(duì)應(yīng)的目錄,別搞錯(cuò)了。

user-service:

?order-service:

gateway:

部署

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

上傳到任意目錄:

部署:

進(jìn)入cloud-demo目錄,然后運(yùn)行下面的命令:

docker-compose up -d

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。