本文介紹使用 Rainbond 快速部署 Spring Cloud Blade 微服務平臺。Spring Cloud Blade 是一個由商業級專案升級優化而來的微服務架構,採用Spring Boot 2.7 、Spring Cloud 2021 等核心技術構建,完全遵循阿里巴巴編碼規範。提供基於 React 和 Vue 的兩個前端框架用於快速搭建企業級的 SaaS 多租戶微服務平臺。
SpringBlade
├── blade-auth -- 授權服務提供
├── blade-common -- 常用工具封裝包
├── blade-gateway -- Spring Cloud 閘道器
├── blade-ops -- 運維中心
├ ├── blade-admin -- spring-cloud後臺管理
├ ├── blade-develop -- 程式碼生成
├ ├── blade-resource -- 資源管理
├ ├── blade-seata-order -- seata分散式事務demo
├ ├── blade-seata-storage -- seata分散式事務demo
├── blade-service -- 業務模組
├ ├── blade-desk -- 工作臺模組
├ ├── blade-log -- 紀錄檔模組
├ ├── blade-system -- 系統模組
├ └── blade-user -- 使用者模組
├── blade-service-api -- 業務模組api封裝
├ ├── blade-desk-api -- 工作臺api
├ ├── blade-dict-api -- 字典api
├ ├── blade-system-api -- 系統api
└── └── blade-user-api -- 使用者api
通過開源應用商店部署 Spring Cloud Blade,在 平臺管理 -> 應用市場 -> 開源應用商店 中搜尋 SpringBlade
並一鍵安裝。
部署完成後,如上圖 Spring Cloud Blade 完整部署的服務拓撲圖 所示。
本篇文章基於 Spring Cloud Blade v3.5.0 版本部署。
通過開源應用商店部署 Nacos
,在開源應用商店中搜尋 Nacos單機
並選擇安裝 2.1.2
版本。
通過開源應用商店部署 Redis
,在開源應用商店中搜尋 Redis
並選擇安裝 5.0.7
版本。
通過開源應用商店部署 Sentinel Dashboard
,在開源應用商店中搜尋 Sentinel-Dashboard
並選擇安裝 1.8.6
版本。
從開源應用商店安裝的 Nacos
自帶了 Mysql
元件,進入該元件中 -> 埠 -> 開啟對外服務,通過使用者端工具連線。
blade
資料庫。1.基於原始碼建立元件,填寫以下資訊:
內容 | |
---|---|
元件名稱 | 自定義 |
元件英文名稱 | 自定義 |
倉庫地址 | https://gitee.com/smallc/SpringBlade |
程式碼版本: Tag | v3.5.0 |
2.檢測出多模組構建,進入多模組構建頁面
- 建立前,在多模組構建頁面 -> 右側修改按鈕 -> 修改每個模組的啟動命令,如下。
- 建立後,刪除每個元件的預設埠,為每個元件新增對應的新埠和埠別名並開啟埠的對內服務,如下。
- 修改完成後構建元件。
元件 | 埠 | 啟動命令 |
---|---|---|
blade-auth | 8100 | web: java $JAVA_OPTS -jar blade-auth/target/blade-auth.jar |
blade-gateway | 80 | web: java $JAVA_OPTS -jar blade-gateway/target/blade-gateway.jar |
blade-admin | 7002 | web: java $JAVA_OPTS -jar blade-ops/blade-admin/target/blade-admin.jar |
blade-develop | 7007 | web: java $JAVA_OPTS -jar blade-ops/blade-develop/target/blade-develop.jar |
blade-report | 8108 | web: java $JAVA_OPTS -jar blade-ops/blade-report/target/blade-report.jar |
blade-resource | 8010 | web: java $JAVA_OPTS -jar blade-ops/blade-resource/target/blade-resource.jar |
blade-swagger | 18000 | web: java $JAVA_OPTS -jar blade-ops/blade-swagger/target/blade-swagger.jar |
blade-desk | 8105 | web: java $JAVA_OPTS -jar blade-service/blade-desk/target/blade-desk.jar |
blade-log | 8103 | web: java $JAVA_OPTS -jar blade-service/blade-log/target/blade-log.jar |
blade-system | 8106 | web: java $JAVA_OPTS -jar blade-service/blade-system/target/blade-system.jar |
blade-user | 8102 | web: java $JAVA_OPTS -jar blade-service/blade-user/target/blade-user.jar |
3.編輯依賴關係,切換到 編排模式
拖動元件進行依賴關係建立。
4.進入 Nacos
元件內 -> 埠 -> 開啟 8848
埠的對外服務,存取 Nacos 並登入,預設使用者密碼 nacos/nacos
,建立組態檔。
建立 blade.yaml
組態檔,內容如下:
#伺服器設定
server:
undertow:
# 以下的設定會影響buffer,這些buffer會用於伺服器連線的IO操作,有點類似netty的池化記憶體管理
buffer-size: 1024
# 是否分配的直接記憶體
direct-buffers: true
# 執行緒設定
threads:
# 設定IO執行緒數, 它主要執行非阻塞的任務,它們會負責多個連線, 預設設定每個CPU核心一個執行緒
io: 16
# 阻塞任務執行緒池, 當執行類似servlet請求阻塞操作, undertow會從這個執行緒池中取得執行緒,它的值設定取決於系統的負載
worker: 400
#spring設定
spring:
cloud:
sentinel:
eager: true
devtools:
restart:
log-condition-evaluation-delta: false
livereload:
port: 23333
#feign設定
feign:
sentinel:
enabled: true
okhttp:
enabled: true
httpclient:
enabled: false
#對外暴露埠
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
#knife4j設定
knife4j:
#啟用
enable: true
#基礎認證
basic:
enable: false
username: blade
password: blade
#增強設定
setting:
enableSwaggerModels: true
enableDocumentManage: true
enableHost: false
enableHostText: http://localhost
enableRequestCache: true
enableFilterMultipartApis: false
enableFilterMultipartApiMethodType: POST
language: zh-CN
enableFooter: false
enableFooterCustom: true
footerCustomContent: Copyright © 2022 SpringBlade All Rights Reserved
#swagger設定資訊
swagger:
title: SpringBlade 介面檔案系統
description: SpringBlade 介面檔案系統
version: 3.5.0
license: Powered By SpringBlade
licenseUrl: https://bladex.vip
terms-of-service-url: https://bladex.vip
contact:
name: smallchill
email: [email protected]
url: https://gitee.com/smallc
#blade設定
blade:
token:
sign-key: 請設定32位元簽名提高安全性
xss:
enabled: true
skip-url:
- /weixin
secure:
skip-url:
- /test/**
client:
- client-id: sword
path-patterns:
- /sword/**
- client-id: saber
path-patterns:
- /saber/**
tenant:
column: tenant_id
tables:
- blade_notice
建立 blade-dev.yaml
組態檔,內容如下:
#spring設定
spring:
redis:
##redis 單機環境設定
host: 127.0.0.1
port: 6379
password:
database: 0
ssl: false
#專案模組集中設定
blade:
#通用開發生產環境資料庫地址(特殊情況可在對應的子工程裡設定覆蓋)
datasource:
dev:
url: jdbc:mysql://127.0.0.1:3306/blade?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8
username: root
password: root
更新或重啟除 Nacos
Mysql
Redis
Sentinel Dashboard
之外的所有元件。
內容 | |
---|---|
元件名稱 | 自定義 |
元件英文名稱 | 自定義 |
倉庫地址 | https://gitee.com/zhangbigqi/Saber.git |
程式碼版本 | v3.5.0 |
Saber
元件內 -> 埠 -> 刪除預設埠,新增 8080
埠並開啟對外服務。編排模式
拖動元件進行依賴關係建立,將 Saber
依賴 blade-gateway
並更新元件。Saber UI
並登入。部署完成後,如上圖 Spring Cloud Blade 完整部署的服務拓撲圖 所示。