VortMall 微服务技术栈说明

VortMall 微服务技术栈说明

本文档详细说明 VortMall 微服务电商平台所采用的技术栈及其版本信息。


一、技术栈概览

1.1 技术栈全景图

┌─────────────────────────────────────────────────────────────────────────────┐
│                           VortMall 微服务技术栈                              │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│    ┌──────────────┐     ┌──────────────┐     ┌──────────────┐              │
│    │   客户端     │     │   管理后台   │     │   第三方系统  │              │
│    └──────┬───────┘     └──────┬───────┘     └──────┬───────┘              │
│           │                    │                    │                       │
│           └────────────────────┼────────────────────┘                       │
│                                ▼                                            │
│    ┌─────────────────────────────────────────────────────────────────┐     │
│    │                   Spring Cloud Gateway                          │     │
│    │                 (统一入口 + 路由 + 限流)                          │     │
│    └─────────────────────────────┬───────────────────────────────────┘     │
│                                  │                                          │
│    ┌─────────────────────────────┼───────────────────────────────────┐     │
│    │                         服务集群                                 │     │
│    │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐  │     │
│    │  │ 商品服务│ │ 订单服务│ │ 用户服务│ │ 支付服务│ │ 营销服务│  │     │
│    │  └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘  │     │
│    │       │           │           │           │           │        │     │
│    │  ┌────┴───────────┴───────────┴───────────┴───────────┴────┐  │     │
│    │  │                     OpenFeign (服务调用)                 │  │     │
│    │  └─────────────────────────────────────────────────────────┘  │     │
│    └─────────────────────────────────────────────────────────────────┘     │
│                                  │                                          │
│    ┌─────────────────────────────┼───────────────────────────────────┐     │
│    │                         基础设施                                 │     │
│    │  ┌─────────────────────────────────────────────────────────┐   │     │
│    │  │           Nacos (服务注册中心 + 配置中心)                 │   │     │
│    │  └─────────────────────────────────────────────────────────┘   │     │
│    │                                                                 │     │
│    │  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐          │     │
│    │  │  MySQL   │ │  Redis   │ │ RocketMQ │ │   ES     │          │     │
│    │  └──────────┘ └──────────┘ └──────────┘ └──────────┘          │     │
│    │                                                                 │     │
│    │  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐          │     │
│    │  │  Seata   │ │ XXL-Job  │ │ Sentinel │ │Skywalking│          │     │
│    │  └──────────┘ └──────────┘ └──────────┘ └──────────┘          │     │
│    └─────────────────────────────────────────────────────────────────┘     │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

1.2 版本兼容性矩阵

组件版本兼容性说明
Java21JDK 21 LTS 版本
Spring Boot4.0.1最新稳定版
Spring Cloud2025.1.0与 Spring Boot 4.x 匹配
Spring Cloud Alibaba2025.1.0.0与 Spring Cloud 2025.x 匹配

二、核心框架

2.1 基础框架

技术版本用途官方文档
Java21编程语言Oracle Java
Spring Boot4.0.1应用框架Spring Boot
Spring Cloud2025.1.0微服务框架Spring Cloud
Spring Cloud Alibaba2025.1.0.0微服务组件SCA
Maven3.8+构建工具Maven

2.2 微服务组件

技术版本用途说明
Spring Cloud Gateway4.1.xAPI 网关统一入口、路由、限流、鉴权
Nacos2.x服务注册与配置中心服务发现、动态配置管理
OpenFeign4.1.x声明式 HTTP 客户端服务间调用
LoadBalancer4.1.x负载均衡客户端负载均衡
Sentinel1.8.x流量控制限流、熔断、降级
Seata2.0.x分布式事务AT/TCC/SAGA 模式

三、数据层技术栈

3.1 数据库

技术版本用途配置参考
MySQL8.0.33关系型数据库主数据存储
MyBatis Plus3.5.15ORM 框架数据访问层
Druid1.2.24连接池数据库连接管理、SQL 监控
H22.2.224内存数据库单元测试

数据库连接配置示例:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/vortmall_product?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: xxxxxx
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 20
      max-wait: 60000

3.2 缓存

技术版本用途说明
Redis7.x分布式缓存会话、热点数据、分布式锁
Redisson3.36.0Redis 客户端分布式锁、分布式集合
Caffeine3.1.8本地缓存二级缓存、JVM 内缓存
JetCache2.7.6缓存框架统一缓存抽象、多级缓存

多级缓存架构:

┌────────────────────────────────────────────────────────────┐
│                        应用层                               │
└───────────────────────────┬────────────────────────────────┘
                            │
                            ▼
┌────────────────────────────────────────────────────────────┐
│             JetCache (统一缓存抽象)                          │
└───────────────────────────┬────────────────────────────────┘
                            │
            ┌───────────────┼───────────────┐
            ▼               │               ▼
┌───────────────────┐       │     ┌───────────────────┐
│  Caffeine (L1)    │       │     │   Redis (L2)      │
│  本地缓存          │       │     │   分布式缓存       │
│  响应时间: <1ms   │       │     │   响应时间: 1-5ms  │
└───────────────────┘       │     └───────────────────┘
                            │
                            ▼
              ┌───────────────────────┐
              │       MySQL           │
              │     响应时间: 10-50ms  │
              └───────────────────────┘

3.3 搜索引擎

技术版本用途说明
Elasticsearch8.x全文搜索商品搜索、日志分析

四、消息队列

4.1 消息中间件

技术版本用途说明
RocketMQ5.x消息队列异步消息、订单处理、库存同步
Spring Cloud Stream-消息抽象统一消息编程模型

RocketMQ 配置示例:

rocketmq:
  name-server: localhost:9876
  producer:
    group: vortmall-producer-group
    send-message-timeout: 3000
    retry-times-when-send-failed: 3

4.2 IoT 消息

技术版本用途说明
EMQX5.xMQTT BrokerIoT 设备通信
Paho MQTT1.2.5MQTT 客户端设备消息收发

五、安全认证

5.1 认证授权

技术版本用途说明
Sa-Token1.40.0权限认证框架登录认证、权限校验、会话管理

Sa-Token 特性:

  • 登录认证、权限认证、Session 会话
  • 踢人下线、账号封禁
  • 多账号认证体系(管理员/用户)
  • 单点登录(SSO)
  • OAuth 2.0 授权认证
  • 分布式会话(Redis 集成)

多账号体系配置:

// 管理员认证
StpAdminUtil.login(adminId);
StpAdminUtil.checkPermission("product:add");

// 会员认证
StpMemberUtil.login(memberId);
StpMemberUtil.checkLogin();

六、任务调度

技术版本用途说明
XXL-Job2.4.2分布式任务调度定时任务、分片任务

XXL-Job 特性:

  • 动态任务管理(Web 控制台)
  • 任务分片广播
  • 失败重试和告警
  • 任务执行日志
  • GLUE 模式(在线编辑代码)

配置示例:

xxl:
  job:
    admin:
      addresses: http://localhost:8080/xxl-job-admin
    executor:
      appname: vortmall-product-executor
      port: 9999
      logpath: /data/applogs/xxl-job/jobhandler
      logretentiondays: 30

七、日志与监控

7.1 日志框架

技术版本用途说明
LogbackSpring Boot 内置日志实现日志输出
SLF4JSpring Boot 内置日志门面统一日志 API
Logstash Encoder8.0JSON 日志ELK 集成

7.2 链路追踪

技术版本用途说明
Skywalking9.xAPM 系统链路追踪、性能监控

日志配置示例:

<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>localhost:5000</destination>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        <customFields>{"app_name":"vortmall-product"}</customFields>
    </encoder>
</appender>

八、API 文档

技术版本用途说明
SpringDoc OpenAPI2.8.0API 文档Swagger UI、OpenAPI 3.0

访问地址:

  • Swagger UI: http://localhost:8080/swagger-ui.html
  • OpenAPI JSON: http://localhost:8080/v3/api-docs

九、工具类库

技术版本用途说明
Lombok1.18.36代码简化自动生成 getter/setter/构造器
Hutool5.8.35Java 工具库通用工具类集合
Guava33.3.1-jreGoogle 工具库集合、缓存、并发工具
FastJSON22.0.53JSON 处理JSON 序列化/反序列化
Apache Commons Lang33.17.0通用工具字符串、对象、反射工具
Apache POI5.2.5Office 文档Excel 导入导出

十、第三方集成

10.1 支付集成

技术版本用途
支付宝 SDK3.1.35.ALL支付宝支付
微信支付 SDK4.6.0微信支付
PayPal SDK2.0.0PayPal 国际支付

10.2 云服务集成

技术版本用途
阿里云短信 SDK2.0.24短信验证码
阿里云 OSS-对象存储

10.3 验证码

技术版本用途
AJ-Captcha1.4.0滑动验证码

十一、项目模块架构

11.1 模块总览

VortMall-Api/
├── vortmall-gateway/              # 网关服务
├── vortmall-auth/                 # 认证服务
├── vortmall-biz/                  # 业务服务聚合
│   ├── vortmall-biz-product/      # 商品服务
│   ├── vortmall-biz-order/        # 订单服务
│   ├── vortmall-biz-user/         # 用户服务
│   ├── vortmall-biz-payment/      # 支付服务
│   ├── vortmall-biz-marketing/    # 营销服务
│   ├── vortmall-biz-logistics/    # 物流服务
│   ├── vortmall-biz-aftersales/   # 售后服务
│   ├── vortmall-biz-system/       # 系统管理服务
│   ├── vortmall-biz-file/         # 文件服务
│   ├── vortmall-biz-message/      # 消息服务
│   ├── vortmall-biz-content/      # 内容服务
│   ├── vortmall-biz-decoration/   # 装修服务
│   ├── vortmall-biz-distribution/ # 分销服务
│   ├── vortmall-biz-organize/     # 组织服务
│   └── vortmall-biz-pos/          # POS 收银服务
├── vortmall-common/               # 公共模块聚合
│   ├── vortmall-common-core/      # 核心工具
│   ├── vortmall-common-web/       # Web 组件
│   ├── vortmall-common-datasource/# 数据源配置
│   ├── vortmall-common-cache/     # 缓存组件
│   ├── vortmall-common-nacos/     # Nacos 集成
│   ├── vortmall-common-sa-token/  # Sa-Token 集成
│   ├── vortmall-common-distribute_id/ # 分布式 ID
│   ├── vortmall-common-mq/        # 消息队列
│   ├── vortmall-common-seata/     # 分布式事务
│   ├── vortmall-common-job/       # 任务调度
│   ├── vortmall-common-lock/      # 分布式锁
│   ├── vortmall-common-es/        # Elasticsearch
│   ├── vortmall-common-excel/     # Excel 处理
│   ├── vortmall-common-log/       # 日志组件
│   ├── vortmall-common-emqx/      # MQTT 集成
│   └── vortmall-common-outbox/    # Outbox 模式
└── vortmall-feign/                # Feign 客户端聚合
    ├── vortmall-feign-product/    # 商品服务 Feign
    ├── vortmall-feign-order/      # 订单服务 Feign
    ├── vortmall-feign-user/       # 用户服务 Feign
    ├── vortmall-feign-payment/    # 支付服务 Feign
    └── ...                        # 其他服务 Feign

11.2 服务端口规划

服务端口说明
vortmall-gateway8080API 网关
vortmall-auth8081认证服务
vortmall-biz-product8100商品服务
vortmall-biz-order8200订单服务
vortmall-biz-user8300用户服务
vortmall-biz-payment8400支付服务
vortmall-biz-marketing8500营销服务
vortmall-biz-system8600系统服务
vortmall-biz-file8700文件服务
vortmall-biz-message8800消息服务

11.3 DDD 分层架构

每个业务服务内部采用 DDD 四层架构:

vortmall-biz-{domain}/
├── adapter/           # 适配层(Controller)
│   ├── AdminXxxController.java   # 管理端接口
│   └── ApiXxxController.java     # 用户端接口
├── application/       # 应用层(Service)
│   ├── XxxServiceI.java          # 服务接口
│   ├── XxxServiceImpl.java       # 服务实现
│   ├── dto/                      # 数据传输对象
│   └── vo/                       # 视图对象
├── domain/            # 领域层
│   ├── {entity}/                 # 聚合/实体
│   ├── gateway/                  # 领域网关接口
│   └── service/                  # 领域服务
└── infrastructure/    # 基础设施层
    ├── XxxGatewayImpl.java       # 网关实现
    ├── data/                     # 数据对象 (DO)
    └── mapper/                   # MyBatis Mapper

十二、基础设施依赖

12.1 必需组件

组件版本默认端口用途
MySQL8.0+3306主数据库
Redis7.0+6379缓存/会话
Nacos2.5+8848/9848注册/配置中心
RocketMQ5.x9876/10911消息队列

12.2 可选组件

组件版本默认端口用途
Elasticsearch8.x9200/9300全文搜索
Seata Server2.0.x8091/7091分布式事务协调
XXL-Job Admin2.4.x8080任务调度控制台
Sentinel Dashboard1.8.x8858限流熔断控制台
Skywalking OAP9.x11800/12800链路追踪服务端
EMQX5.x1883/8083/18083MQTT Broker

十三、开发环境要求

13.1 必需软件

软件版本要求说明
JDK21+推荐 Oracle JDK 或 Eclipse Temurin
Maven3.8+构建工具
Git2.x+版本控制
IDEIntelliJ IDEA 2024+推荐使用 Ultimate 版本

13.2 IDE 插件推荐

插件用途
LombokLombok 支持
MyBatisXMyBatis 增强
Spring Boot AssistantSpring Boot 开发辅助
RestfulToolRESTful API 测试
GitToolBoxGit 增强

十四、快速启动指南

14.1 本地开发环境

# 1. 启动基础设施 (Docker Compose)
cd deployment/DockerCompose
docker-compose up -d mysql redis nacos rocketmq

# 2. 等待服务就绪后,启动网关
cd vortmall-gateway
mvn spring-boot:run

# 3. 启动业务服务
cd vortmall-biz/vortmall-biz-product
mvn spring-boot:run

14.2 配置中心 (Nacos)

所有服务配置统一托管在 Nacos 配置中心:

配置文件说明
vortmall-common.yml公共配置
vortmall-product.yml商品服务配置
vortmall-order.yml订单服务配置
...其他服务配置

十五、技术选型对比

15.1 为什么选择当前技术栈

领域选择原因
ORMMyBatis PlusSQL 可控、性能优化方便、团队熟悉
认证Sa-Token简单易用、功能完整、国内社区活跃
注册中心Nacos服务发现+配置中心一体化、阿里生态
消息队列RocketMQ高性能、支持事务消息、阿里生态
缓存Redis + Redisson功能丰富、分布式锁支持好
任务调度XXL-Job简单易用、可视化控制台

15.2 明确不使用的技术

技术原因
Hibernate/JPA团队不熟悉、SQL 不可控
Spring Security配置复杂、学习曲线陡峭
EurekaNetflix 已停止维护
Ribbon已废弃,使用 LoadBalancer
Hystrix已停止维护,使用 Sentinel
Zuul性能差,使用 Gateway
FastJSON 1.x安全漏洞,使用 FastJSON2

十六、版本升级记录

日期版本变更说明
2026-01Spring Boot 3.2.2 → 4.0.1升级至 Spring Boot 4.x
2026-01Spring Cloud 2023.0.0 → 2025.1.0升级至 Spring Cloud 2025.x
2026-01SCA 2023.0.1.2 → 2025.1.0.0配合 Spring Cloud 升级

文档维护者: VortMall 技术团队
最后更新: 2026-01-30
文档版本: v1.0

VortMall 微服务技术栈说明
请输入搜索内容
大纲
VortMall 微服务技术栈说明
一、技术栈概览
1.1 技术栈全景图
1.2 版本兼容性矩阵
二、核心框架
2.1 基础框架
2.2 微服务组件
三、数据层技术栈
3.1 数据库
3.2 缓存
3.3 搜索引擎
四、消息队列
4.1 消息中间件
4.2 IoT 消息
五、安全认证
5.1 认证授权
六、任务调度
七、日志与监控
7.1 日志框架
7.2 链路追踪
八、API 文档
九、工具类库
十、第三方集成
10.1 支付集成
10.2 云服务集成
10.3 验证码
十一、项目模块架构
11.1 模块总览
11.2 服务端口规划
11.3 DDD 分层架构
十二、基础设施依赖
12.1 必需组件
12.2 可选组件
十三、开发环境要求
13.1 必需软件
13.2 IDE 插件推荐
十四、快速启动指南
14.1 本地开发环境
14.2 配置中心 (Nacos)
十五、技术选型对比
15.1 为什么选择当前技术栈
15.2 明确不使用的技术
十六、版本升级记录