技术选型报告


项目名称: 美鹅外卖平台系统
编写人: 沈冬法
日期: 2025年6月3日
版本号: V2.7


1. 文档说明

1.1 编写目的

本报告旨在明确美鹅外卖平台各技术组件的选型依据与优劣分析,为后续开发、部署与维护提供技术决策支持。

1.2 适用范围

本报告适用于系统架构师、开发工程师、测试工程师与运维团队,涉及平台核心架构及相关中间件、工具组件的选型。


2. 项目背景简述

美鹅外卖平台采用 C/S 架构,支持用户、商户、管理员三类角色,核心需求包括高并发支持、安全交易跨平台客户端、模块化服务。系统部署需兼容容器化和分布式调度架构。


3. 技术选型原则

  • 性能优先:支持高并发、高I/O吞吐
  • 跨平台能力:客户端需支持 Win/macOS/Linux
  • 社区成熟度:优先选择文档丰富、维护活跃项目
  • 易部署可维护:简化运维部署流程,容器支持友好
  • 开源优先,商业授权可控

4. 技术选型与对比分析

4.1 客户端开发框架

框架 跨平台 GUI支持 文档完备 性能 最终选择
Qt 6.7 ⭐⭐⭐⭐
Electron ⭐⭐⭐
Flutter ⭐⭐

选型理由:Qt 6.7 提供稳定的跨平台桌面 GUI 开发能力,C++ 原生绑定,支持复杂控件与本地系统集成,适用于功能完整的 C/S 应用。


4.2 服务端开发语言与框架

技术 性能 并发处理 生态支持 学习曲线 最终选择
C++17 ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ 较高
Go ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐
Java (Spring Boot) ⭐⭐ ⭐⭐ ⭐⭐⭐⭐

选型理由:C++17 能提供底层细粒度控制、高性能处理能力,适合高并发订单处理等核心业务场景。


4.3 通信协议

协议 人类可读 压缩性能 成熟度 最终选择
JSON over HTTP 一般
Protobuf + TCP 优秀
gRPC 优秀

选型理由:JSON over HTTP 简单、通用、调试方便,适用于当前中小型项目快速开发、调试与部署。


4.4 数据存储方案

类型 技术 特性 成本 最终选择
关系型 MySQL 8.0 成熟稳定,事务支持强 免费
非关系型 Redis 7.2.4 高速缓存,键值访问 免费 ✅(作为缓存)
文档型 MongoDB 文档灵活,嵌套结构强 免费

选型理由

  • 主存储:MySQL 用于订单、账户等关系型结构数据
  • 缓存系统:Redis 减轻数据库压力,加速热数据访问(如商品展示、订单状态)

4.5 中间件与支持组件

分类 工具 功能 说明
反向代理 Nginx 1.24.0 请求路由、负载均衡 简洁、稳定,支持 TLS
部署容器 Docker 28.0.4 容器打包与部署 开发环境/生产环境一致性
日志系统 spdlog 高性能日志库 支持多级别、文件分割等
CI/CD工具 GitLab Runner / Jenkins 持续集成(后期可选) 暂未集成

5. 第三方服务选型(暂未启用)

服务类别 技术/平台 接入状态 备注说明
支付接口 支付宝/微信支付 ⛔ 未启用 计划后期接入(待API申请)
地图定位 高德地图 API ⛔ 未启用 暂不涉及配送功能

6. 技术风险与规避措施

风险项 应对措施
C++ 内存管理复杂 严格使用 RAII、智能指针、封装基础类
Qt LGPL 许可 遵守 LGPL 要求,避免静态链接闭源模块
JSON 性能瓶颈 考虑对热点请求使用 Redis 缓存、或后期切换 Protobuf
Docker 不熟悉 制定统一镜像构建标准,逐步容器化测试流程

7. 结论与建议

  • 推荐整体技术方案:
    • 客户端:Qt 6.7 + C++17
    • 服务端:C++17 单体服务 + JSON over HTTP
    • 数据持久化:MySQL + Redis
    • 部署方案:Docker + Nginx
  • 当前架构适合单体阶段快速迭代,具备向模块化/微服务演进的能力

8. 附录