技术栈与系统架构
查看 CusMall 2.0 的 Java 21、Spring Boot 4、Nuxt 4 SSR、多端前端、领域服务与不可变交付基线。
CusMall 2.0 采用“领域微服务后端 + 多买家运行时 + 独立运营/商家端 + 不可变交付”。本页只描述商城仓当前唯一基线;官网仓与商城仓技术栈完全独立,两者只通过 HTTP 交互。
当前技术基线
| 层级 | 组件 | 运行边界 |
|---|---|---|
| 后端基础 | Java 21、Spring Boot 4.0.8、Spring Cloud 2025.1.3、Spring Cloud Alibaba 2025.1.0.0 | 领域服务、鉴权、治理与接口契约 |
| 运营管理端 | Vue 3.5、Vite 6、TypeScript 5、Element Plus、pnpm 10.18.2 | 平台运营与系统配置 |
| PC 买家端 | Nuxt 4.5、Vue 3、Nitro SSR、npm 11.17.0 | 公开页面服务端渲染与登录后客户端运行 |
| 移动买家端 | uni-app、Vue 3、DCloud 5.24、npm 11.17.0 | H5、小程序与 App |
| 商家工作台 | uni-app、Vue 3、DCloud 5.24、npm 11.17.0 | 商家经营与客服入口 |
| 数据与治理 | MySQL 8、Redis 7、Nacos 3.2.1、Elasticsearch 8.7.1、MinIO | 业务事实、缓存、配置、检索与对象存储 |
| 可观测性 | Actuator、Prometheus、OpenTelemetry | 健康、指标与链路基线 |
| 入口与部署 | Nginx、Docker Compose、linux/amd64 不可变镜像 | 四端入口、服务编排与客户环境交付 |
四套前端固定 Node 24.19.0,但依赖目录、锁文件和产物彼此独立。PC 使用 Nuxt/Nitro,不再由 uni-app 生成;移动端与商家端继续使用 uni-app,双方只共享后端 HTTP 契约和业务规则。
标准运行拓扑
浏览器、App 与小程序先进入 Nginx。PC 公开页由独立 Nitro 服务完成 SSR,其余前端以静态资源或渠道包运行;业务请求统一经过 Gateway,再进入 Auth、UPMS、Mall、Pay、Weixin 与 Live 等领域服务。
标准安装常驻八个后端服务:gateway、auth、upms-admin、mall-admin、mall-api、weixin-admin、pay-admin、live-admin。codegen 与 monitor 随同一制品交付,但只在 tools profile 中启用。
MySQL 是持久化业务事实,Redis 只用于缓存和快速触发,Nacos 负责 Config/Naming,Elasticsearch 提供检索,MinIO 保存对象。RocketMQ、Kubernetes、Jenkins、Druid 与 SkyWalking 不属于当前标准部署清单;只有出现真实容量或运维证据,并能同时补齐安装、监控、备份恢复和文档时,才进入产品基线。
接口与一致性边界
- 买家接口必须显式归类为租户发现、公开、登录态、会话或已验证外部回调;未登记接口默认不公开。
- OAuth 令牌端点只接受 POST 表单正文,不接受查询参数,也不保留浏览器固定密钥链路。
- 订单、取消、收货、支付、退款和佣金使用数据库条件更新、事务、锁与补偿任务构成幂等状态迁移。
- 租户、用户与资源所有权由服务端上下文和数据库决定,前端传值不能替代权限校验。
当前交付基线
构建机或 CI 生成一次 linux/amd64 制品,服务器只导入镜像并以 Docker Compose 启动,不接收源码,也不运行 Maven 或 Node。完整发布目录把镜像、运行时文件、数据库迁移、素材、CycloneDX SBOM、checksum、新装验证和升级演练绑定到同一 Git SHA 与 schema 4 release.json。
全新数据库直接表示当前最终结构;存量变化只走带 checksum 的不可变迁移账本。CusMall 2.0 不保留 Spring Boot 3、Spring Cloud 2022、Nacos 2、旧 PC 路由或旧密文格式的双运行分支。