1. 程式人生 > >SpringCloud Alibaba微服務實戰 - 基礎環境準備

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 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

  • 停止容器,由於加了--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日知錄的配置。

nacos安裝成功!

mysql

使用客戶端工具連線上mysql服務,檢視his_config_info表,確認是否有剛剛的配置

mysql安裝成功!

sentinel

訪問http://192.168.136.129:8858使用賬號sentinel/sentinel登入

sentinel安裝成功!

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

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

相關推薦

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

Springcloud Aibaba現在這麼火,我一直想寫個基於Springcloud Alibaba一步一步構建微服務架構的系列部落格,終於下定決心從今天開始本系列文章的第一篇 - 基礎環境準備。 該系列文章內容主要基於三個微服務:使用者服務AccountService,訂單服務OrderService

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

Springcloud Aibaba現在這麼火,我一直想寫個基於Springcloud Alibaba一步一步構建微服務架構的系列部落格,終於下定決心從今天開始本系列文章的第一篇 - 基礎環境準備。 該系列文章內容主要基於三個微服務:使用者服務AccountService,訂單服務OrderService

基於SpringBoot 2.0正式版的SpringCloud微服務實專案搭建

Spring Cloud簡介        Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的

SpringCloud微服務實——第二章Springboot

java with 當前 tom 參數 請求 bubuko zha 格式 Spring Boot項目工程      src/main/java:主程序入口HelloApplication,可以通過直接運行該類來啟動Spring Boot應用。   src/main/reso

SpringCloud微服務實---服務的註冊和發現(Eureka)

clas 清理 註冊中心 rac red mls 保護 gist clu 一、Spring Cloud簡介Spring Cloud是基於SpringBoot的,為開發人員提供了快速構建分布式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策

SpringCloud微服務實專案總結

一、前言     在微服務的浪潮下,公司原有的架構已經嚴重跟不上日益發展的業務需求,隨著使用者量的增加,架構越來越臃腫,乃至沒有人敢於去動原有的架構,加之架構已經有7、8年的歷史,前前後後的開發人員也換過一批有一批,一旦修改,輕則bug一堆,重則牽一髮動全身,所以只

Spring cloud微服務實(三)——基於OAUTH2.0統一認證授權的微服務基礎架構升級

前言 從2018年年初寫的一篇主題為 Spring cloud微服務實戰——基於OAUTH2.0統一認證授權的微服務基礎架構的文章後就很少更新了。自從小寶貝誕生和公司業務的繁忙,年初計劃每週更新一篇博文的計劃已經落空了。年底了,終於清閒了些。 升級 Spring cloud微

SpringCloud微服務實專案總結(整體專案的辛酸淚)

一、前言     在微服務的浪潮下,公司原有的架構已經嚴重跟不上日益發展的業務需求,隨著使用者量的增加, 架構越來越臃腫,乃至沒有人敢於去動原有的架構,加之架構已經有7、8年的歷史,前前後後的

《Spring Cloud微服務實》讀書筆記之基礎知識1

摘要 微服務是一種系統架構的設計風格,它主旨在於將一個原本獨立的系統,拆分成多個獨立執行的小型服務。不同服務之間通過Restful介面進行通訊協作。 關鍵詞:Spring Cloud,微服務 一、什麼是微服務 微服務是一種系統架構的設計風格,它主旨在於將一個原本

SpringCloud微服務實之分散式服務跟蹤Sleuth

通常一個由客戶端發起的請求會在後端系統中經過多個不同的微服務呼叫來協同產生最後的請求結果,在複雜的微服務架構系統中,幾乎每一個前端請求都會形成一條複雜的分散式服務呼叫鏈路,每條鏈路服務痴線錯誤或者延遲都有可能引起請求的失敗。Spring Cloud Sle

SpringCloud微服務實之配置中心Config

Spring Cloud Config是Spring Cloud團隊建立的一個全新專案,用來為分散式系統中基礎設施和微服務應用提供集中化的外部配置支援,它分為服務端和客戶端兩個部分。 一、服務端配置 1、建立SpringCloud-Config專案,

SpringCloud微服務實之服務治理Eureka(單節點)

Euraka是NetFlix微服務套件中的一部分,它基於Netflix Eureka做了二次封裝,主要負責完成微服務架構中的服務治理和服務發現功能。 示例: 一、Eureka搭建服務註冊 1、建立maven專案SpringCloud-Eurek

[高清·非影印]Spring實戰+SpringBoot實戰+Spring微服務實戰+SpringCloud微服務實(全4本)

發送 ref 地址 article 服務 下載 dash files com ------ 鄭重聲明 --------- 資源來自網絡,純粹共享交流, 如果喜歡,請您務必支持正版!! ------------------------------------

微服務實(四):服務發現的可行方案以及實踐案例

mesos aws ec2 動態配置 load 顯示 一個 cer c118 分布 微服務實戰(四):服務發現的可行方案以及實踐案例 這是關於使用微服務架構創建應用系列的第四篇文章。第一篇介紹了微服務架構的模式,討論了使用微服務架構的優缺點。第二和第三篇描

微服務實(六):選擇微服務部署策略

因此 區別 嚴重 http 虛擬化 one rose 精確 命名空間 微服務實戰(一):微服務架構的優勢與不足 微服務實戰(二):使用API Gateway 微服務實戰(三):深入微服務架構的進程間通信 微服務實戰(四):服務發現的可行方案以及實踐案例 微服務實踐(五)

PK1648-Spring Cloud微服務實視頻

集成 後端 aid 前後端分離 隨筆 使用 log eight container PK1648-Spring Cloud微服務實戰視頻 對接真實數據 從0開發前後端分離企業級上線項目 新年伊始,學習要趁早,點滴記錄,學習就是進步! 隨筆背景:在很多時候,很多入門不久的

微軟Azure AspNetCore微服務實 第二期

技術分享 gem 實踐 swe web app reactjs .net 圖片 辦公室 2018新年快樂!繼第1期微服務技術交流活動後(http://www.huodongxing.com/event/4403161781600),本次我們將與上海的小夥伴們繼續深入分享微服

Spring Cloud微服務實教程|Spring Cloud教程

Spring CloudSpring Cloud微服務實戰教程網盤地址:https://pan.baidu.com/s/1nN_tpaUuIhWIHTTtk1k9lg 密碼:9obv備用地址(騰訊微雲):https://share.weiyun.com/5Sc3eEK 密碼:q6cmrk 微服務架構已是當下最

部署k8s ssl集群實踐1:基礎環境準備

基礎 you code hub 錯誤 systemctl 第一個 base 感謝 參考文檔:https://github.com/opsnull/follow-me-install-kubernetes-cluster感謝作者的無私分享。集群環境已搭建成功跑起來。文章是部署

在Ubuntu上學習OpenStack之六:計算節點基礎環境準備和安裝Nova

dpkg -s post rest star 基礎環境 服務狀態 自動啟動 一行 v 安裝鼠標驅動(可選):sudo apt-get install gpm v 安裝(或更新)遠程連接服務:sudo apt-get install openssh-server v 更改py