VortMall 微服务技术栈说明
17
类别: 
后端部分

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-SNAPSHOT与 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-SNAPSHOT微服务组件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

评论 0
/ 1000
0
0
收藏