皮膚自做頭像的網(wǎng)站友情鏈接是啥意思
1. 部署微服務(wù)集群
實現(xiàn)思路:
① 查看課前資料提供的cloud-demo文件夾,里面已經(jīng)編寫好了docker-compose文件
② 修改自己的cloud-demo項目,將數(shù)據(jù)庫、nacos地址都命名為docker-compose中的服務(wù)名
③ 使用maven打包工具,將項目中的每個微服務(wù)都打包為app.jar
④ 將打包好的app.jar拷貝到cloud-demo中的每一個對應(yīng)的子目錄中
⑤ 將cloud-demo上傳至虛擬機,利用 docker-compose up -d 來部署
1.2. compose文件
查看課前資料提供的cloud-demo文件夾,里面已經(jīng)編寫好了docker-compose文件,而且每個微服務(wù)都準(zhǔn)備了一個獨立的目錄:
內(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個service服務(wù):
-
nacos
:作為注冊中心和配置中心-
image: nacos/nacos-server
: 基于nacos/nacos-server鏡像構(gòu)建 -
environment
:環(huán)境變量-
MODE: standalone
:單點模式啟動
-
-
ports
:端口映射,這里暴露了8848端口
-
-
mysql
:數(shù)據(jù)庫-
image: mysql:5.7.25
:鏡像版本是mysql:5.7.25 -
environment
:環(huán)境變量-
MYSQL_ROOT_PASSWORD: 123
:設(shè)置數(shù)據(jù)庫root賬戶的密碼為123
-
-
volumes
:數(shù)據(jù)卷掛載,這里掛載了mysql的data、conf目錄,其中有我提前準(zhǔn)備好的數(shù)據(jù)
-
-
userservice
、orderservice
、gateway
:都是基于Dockerfile臨時構(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
1.3. 修改微服務(wù)配置
因為微服務(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ù)地址
將gateway, orderservice, userservice微服務(wù)的配置信息中的localhost都改掉,比如數(shù)據(jù)庫配置中的localhost改成mysql? nacos服務(wù)地址中的localhost改成 nacos,并且將nacos服務(wù)端口要寫對!
1.4.打包
接下來需要將我們的每個微服務(wù)都打包。因為之前查看到Dockerfile中的jar包名稱都是app.jar,因此我們的每個微服務(wù)都需要用這個名稱。
可以通過修改pom.xml中的打包名稱來實現(xiàn),每個微服務(wù)都需要修改:
<build><!-- 服務(wù)打包的最終名稱 --><finalName>app</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
打包后:
1.5. 拷貝jar包到部署目錄
編譯打包好的app.jar文件,需要放到Dockerfile的同級目錄中。注意:每個微服務(wù)的app.jar放到與服務(wù)名稱對應(yīng)的目錄,別搞錯了。
user-service:
order-service:
gateway:
1.6. 部署
最后,我們需要將文件整個cloud-demo文件夾上傳到虛擬機中,理由DockerCompose部署。
上傳到任意目錄:
比如我們上傳到tmp目錄下:
部署:
進入cloud-demo目錄:
cd /tmp/cloud-demo/
先部署nacos,防止nacos部署較慢,其他微服務(wù)比nacos先部署,出現(xiàn)報錯。
docker-compose up -d nacos
然后運行下面的命令,部署其他東西:
docker-compose up -d
可以用命令查看部署情況:
docker-compose logs -f
想單獨看某個項目的部署,比如gateway的:
docker-compose logs -f gateway
部署之后,可以在本地端瀏覽器查看nacos服務(wù)列表:
瀏覽器地址輸入:http://192.168.71.132:8848/nacos? 其中,前面的ip可以在虛擬機中使用命令
ip addr
進行查看:
我們進入Nacos的控制臺,可以看到:
則部署成功!
測試一下接口是否可以訪問,瀏覽器輸入:
ll192.168.71.132:10010/order/101/?authorization=admin
成功!