Springcloud Aibaba如今這麼火,我一直想寫個基於Springcloud Alibaba一步一步構建微服務架構的系列博客,終於下定決心從今天開始本系列文章的第一篇 - 基礎環境準備。html
該系列文章內容主要基於三個微服務:用戶服務AccountService
,訂單服務OrderService
,產品服務ProductService
java
用到的組件有:mysql
因爲用到的組件相對較多,部署會很繁瑣,最關鍵的是沒有資源服務器,因此在開發過程當中我會逐漸將一些組件使用docker-compose部署。git
本篇內容就是使用Dokcer-compose部署Nacos,Sentinel,Mysql,做爲後面的系列文章的基礎環境。github
若是你對docker或者docker-compose不是很熟悉的話,你能夠翻看我以前的兩篇文章,看完後相信你能很快入手。sql
因爲nacos須要依賴於Mysql做爲資源存儲,因此在編寫完整docker-compose以前我會先用docker啓動臨時的mysql容器,而後準備好nacos須要的數據庫。docker
docker run -p3306:3306 --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v /app/cloud/mysql/data:/var/lib/mysql mysql:5.7
--rm
參數,因此容器會自動刪除docker stop 3475ef078d3a
咱們來看看NACOS的環境變量,以下表所示:數據庫
配置項 | 描述 | 可選參數 | 默認值 |
---|---|---|---|
MODE | 模式 cluster/standalone | cluster/standalone | cluster |
PREFERHOSTMODE | 是否支持 hostname | hostname/ip | ip |
NACOSSERVERPORT | 服務端口號 | 8848 | |
SPRINGDATASOURCEPLATFORM | 單機模式支持 mysql | mysql / empty | empty |
MYSQLMASTERSERVICE_HOST | mysql 主節點 host | ||
MYSQLMASTERSERVICE_PORT | mysql 主節點 port | 3306 | |
MYSQLMASTERSERVICEDBNAME | mysql 主節點數據庫名 | ||
MYSQLMASTERSERVICE_USER | mysql 主節點用戶名 | ||
MYSQLMASTERSERVICE_PASSWORD | mysql 主節點密碼 | ||
MYSQLSLAVESERVICE_HOST | mysql 從節點 host | ||
MYSQLSLAVESERVICE_PORT | mysql 從節點 port | 3306 |
Nacos支持主從配置,考慮到資源問題,咱們只配置一臺單獨的mysql服務器,有資源的同窗能夠搭建主從環境。服務器
sentinel比較簡單,直接配置sentinel-dashboard
鏡像便可。(在系列的開始不須要引入sentinel組件,爲了後面再也不單獨介紹,本次我也把他加到個人docker-compose中)微信
seata因爲一些緣由,還沒發佈官方鏡像,暫時擱淺。
如下是我編寫的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
命令啓動
訪問nacoshttp://192.168.136.129:8848/nacos
,使用帳號密碼nacos/nacos登陸,添加一個name=JAVA日知錄
的配置。nacos安裝成功!
使用客戶端工具鏈接上mysql服務,查看his_config_info
表,確認是否有剛剛的配置mysql安裝成功!
訪問http://192.168.136.129:8858
使用帳號sentinel/sentinel登陸sentinel安裝成功!
至此前期所須要的組件都安裝成功,那麼本期的「SpringCloud Alibaba微服務實戰 - 基礎環境準備」篇也就該結束啦,我們下期有緣再見!
我的公衆號:JAVA日知錄 , javadaily.cn