本文介绍使用 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.基于源码创建组件,填写以下信息:
内容 | |
---|---|
组件名称 | 自定义 |
组件英文名称 | 自定义 |
仓库地址 |
|
代码版本: Tag | v3.5.0 |
2.检测出多模块构建,进入多模块构建页面
创建前,在多模块构建页面 -> 右侧修改按钮 -> 修改每个模块的启动命令,如下。
创建后,删除每个组件的默认端口,为每个组件添加对应的新端口和端口别名并打开端口的对内服务,如下。
修改完成后构建组件。
组件 | 端口 | 启动命令 |
---|---|---|
blade-auth | 8100 |
|
blade-gateway | 80 |
|
blade-admin | 7002 |
|
blade-develop | 7007 |
|
blade-report | 8108 |
|
blade-resource | 8010 |
|
blade-swagger | 18000 |
|
blade-desk | 8105 |
|
blade-log | 8103 |
|
blade-system | 8106 |
|
blade-user | 8102 |
|
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: smallchill@163.com
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
之外的所有组件。
内容 | |
---|---|
组件名称 | 自定义 |
组件英文名称 | 自定义 |
仓库地址 |
|
代码版本 | v3.5.0 |
Saber
组件内 -> 端口 -> 删除默认端口,新增 8080
端口并打开对外服务。编排模式
拖动组件进行依赖关系建立,将 Saber
依赖 blade-gateway
并更新组件。Saber UI
并登录。部署完成后,如上图 Spring Cloud Blade 完整部署的服务拓扑图 所示。