本系列文章使用SpringCloud Alibaba一步一步建構你的微服務架構體系,這是第一篇“基礎環境準備”,歡迎大家持續關注!
Springcloud Aibaba現在這麼火,我一直想寫個基于Springcloud Alibaba一步一步建構微服務架構的系列部落格,終于下定決心從今天開始本系列文章的第一篇 - 基礎環境準備
本系列文章内容主要基于三個微服務:使用者服務
AccountService
,訂單服務
OrderService
,産品服務
ProductService
用到的元件有:
- 注冊中心、配置中心 Nacos
- 限流 Sentinel
- 分布式事務 Seata
- 網關 SpringCloud Gateway
- 認證授權 Spring Cloud Oauth2
- docker、docker-compose
由于用到的元件相對較多,部署會很繁瑣,最關鍵的是沒有資源伺服器,是以在開發過程中我會逐漸将一些元件使用docker-compose部署。
本篇内容就是使用Dokcer-compose部署Nacos,Sentinel,Mysql,作為後面的系列文章的基礎環境。
如果你對docker或者docker-compose不是很熟悉的話,你可以翻看我之前的兩篇文章,看完後相信你能很快入手。
- Docker基礎與實戰,看這一篇就夠了
- Docker-Compose基礎與實戰,看這一篇就夠了
容器化
mysql
由于nacos需要依賴于Mysql作為資源存儲,是以在編寫完整docker-compose之前我會先用docker啟動臨時的mysql容器,然後準備好nacos需要的資料庫。
- 啟動臨時容器
此處需要挂載主控端目錄,在啟動docker-compse後就不需要再次初始化資料。docker run -p3306:3306 --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v /app/cloud/mysql/data:/var/lib/mysql mysql:5.7
- 用mysql用戶端連接配接你的容器,然後導入nacos的資料表
https://github.com/alibaba/nacos/tree/develop/distribution/conf/ nacos-mysql.sql
- 停止容器,由于加了
參數,是以容器會自動删除--rm
docker stop 3475ef078d3a
nacos
我們來看看NACOS的環境變量,如下表所示:
Nacos支援主從配置,考慮到資源問題,我們隻配置一台單獨的mysql伺服器,有資源的同學可以搭建主從環境。
sentinel
sentinel比較簡單,直接配置
sentinel-dashboard
鏡像即可。(在系列的開始不需要引入sentinel元件,為了後面不再單獨介紹,本次我也把他加到我的docker-compose中)
seata
seata由于一些原因,還沒釋出官方鏡像,暫時擱淺。
docker-compose
以下是我編寫的docker-compse檔案,大家可以自行修改
version: "3"
services:
mysql:
container_name: mysql
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- /app/cloud/mysql/data:/var/lib/mysql
ports:
- "3306:3306"
restart: always
nacos:
image: nacos/nacos-server:1.1.4
container_name: nacos
environment:
- PREFER_HOST_MODE=hostname
- MODE=standalone
- MYSQL_DATABASE_NUM=1
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_MASTER_SERVICE_HOST=mysql
- MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
- MYSQL_MASTER_SERVICE_PORT=3306
- MYSQL_MASTER_SERVICE_USER=root
- MYSQL_MASTER_SERVICE_PASSWORD=123456
volumes:
- /app/cloud/nacos/logs:/home/nacos/logs
ports:
- "8848:8848"
depends_on:
- mysql
restart: always
sentinel:
image: bladex/sentinel-dashboard:latest
container_name: sentinel
ports:
- "8858:8858"
restart: always
将其上傳至你的伺服器,執行
docker-compose up -d
指令啟動
環境驗證
nacos
通路nacos
http://192.168.136.129:8848/nacos
,使用賬号密碼nacos/nacos登入,添加一個
name=JAVA日知錄
的配置。
nacos安裝成功!
mysql
使用用戶端工具連接配接上mysql服務,檢視
his_config_info
表,确認是否有剛剛的配置
mysql安裝成功!
sentinel
通路
http://192.168.136.129:8858
使用賬号sentinel/sentinel登入
sentinel安裝成功!
至此前期所需要的元件都安裝成功,那麼本期的“SpringCloud Alibaba微服務實戰 - 基礎環境準備”篇也就該結束啦,咱們下期有緣再見!