SpringCloud Alibaba微服務實戰 - 基礎環境準備

Springcloud Aibaba現在這麼火,我一直想寫個基於Springcloud Alibaba一步一步構建微服務架構的系列博客,終於下定決心從今天開始本系列文章的第一篇 - 基礎環境準備。

該系列文章內容主要基於三個微服務:用戶服務AccountService,訂單服務OrderService,產品服務ProductService

用到的組件有:

  • 註冊中心、配置中心 Nacos
  • 限流 Sentinel
  • 分佈式事務 Seata
  • 網關 SpringCloud Gateway
  • 認證授權 Spring Cloud Oauth2
  • docker、docker-compose

由於用到的組件相對較多,部署會很繁瑣,最關鍵的是沒有資源服務器,所以在開發過程中我會逐漸將一些組件使用docker-compose部署。
image.png

本篇內容就是使用Dokcer-compose部署Nacos,Sentinel,Mysql,作爲後面的系列文章的基礎環境。

如果你對docker或者docker-compose不是很熟悉的話,你可以翻看我之前的兩篇文章,看完後相信你能很快入手。

容器化

mysql

由於nacos需要依賴於Mysql作爲資源存儲,所以在編寫完整docker-compose之前我會先用docker啓動臨時的mysql容器,然後準備好nacos需要的數據庫。

  • 啓動臨時容器
    docker run -p3306:3306 --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v /app/cloud/mysql/data:/var/lib/mysql mysql:5.7
    此處需要掛載宿主機目錄,在啓動docker-compse後就不需要再次初識化數據。

  • 用mysql客戶端連接你的容器,然後導入nacos的數據表
    https://github.com/alibaba/nacos/tree/develop/distribution/conf/ nacos-mysql.sql
    image.png

  • 停止容器,由於加了--rm參數,所以容器會自動刪除
    docker stop 3475ef078d3a

nacos

我們來看看NACOS的環境變量,如下表所示:

配置項 描述 可選參數 默認值
MODE 模式 cluster/standalone cluster/standalone cluster
PREFER_HOST_MODE 是否支持 hostname hostname/ip ip
NACOS_SERVER_PORT 服務端口號 8848
SPRING_DATASOURCE_PLATFORM 單機模式支持 mysql mysql / empty empty
MYSQL_MASTER_SERVICE_HOST mysql 主節點 host
MYSQL_MASTER_SERVICE_PORT mysql 主節點 port 3306
MYSQL_MASTER_SERVICE_DB_NAME mysql 主節點數據庫名
MYSQL_MASTER_SERVICE_USER mysql 主節點用戶名
MYSQL_MASTER_SERVICE_PASSWORD mysql 主節點密碼
MYSQL_SLAVE_SERVICE_HOST mysql 從節點 host
MYSQL_SLAVE_SERVICE_PORT mysql 從節點 port 3306

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

訪問nacoshttp://192.168.136.129:8848/nacos,使用賬號密碼nacos/nacos登錄,添加一個name=JAVA日知錄的配置。
image.png
nacos安裝成功!

mysql

使用客戶端工具連接上mysql服務,查看his_config_info表,確認是否有剛剛的配置
image.png
mysql安裝成功!

sentinel

訪問http://192.168.136.129:8858使用賬號sentinel/sentinel登錄
image.png
sentinel安裝成功!

至此前期所需要的組件都安裝成功,那麼本期的“SpringCloud Alibaba微服務實戰 - 基礎環境準備”篇也就該結束啦,咱們下期有緣再見!

個人公衆號:JAVA日知錄 , javadaily.cn

avatar

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章