天天看點

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

本系列文章使用SpringCloud Alibaba一步一步建構你的微服務架構體系,這是第一篇“基礎環境準備”,歡迎大家持續關注!

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

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

本系列文章内容主要基于三個微服務:使用者服務

AccountService

,訂單服務

OrderService

,産品服務

ProductService

用到的元件有:

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

由于用到的元件相對較多,部署會很繁瑣,最關鍵的是沒有資源伺服器,是以在開發過程中我會逐漸将一些元件使用docker-compose部署。

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

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

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

  • Docker基礎與實戰,看這一篇就夠了
  • Docker-Compose基礎與實戰,看這一篇就夠了
spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

容器化

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

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備
  • 停止容器,由于加了

    --rm

    參數,是以容器會自動删除

    docker stop 3475ef078d3a

nacos

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

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

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日知錄

的配置。

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

nacos安裝成功!

mysql

使用用戶端工具連接配接上mysql服務,檢視

his_config_info

表,确認是否有剛剛的配置

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

mysql安裝成功!

sentinel

通路

http://192.168.136.129:8858

使用賬号sentinel/sentinel登入

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備

sentinel安裝成功!

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

spring cloud微服務實戰 pdf_SpringCloud Alibaba微服務實戰 - 基礎環境準備