架构设计
2025/12/3大约 3 分钟
淘票票项目架构设计
整体架构
淘票票项目采用经典的微服务架构,主要分为前端层、API网关层、服务层、数据层和基础设施层。
架构图概览
分层设计
1. 前端层
- 技术栈:Vue3 + Vite + Vue Router + Element Plus
- 功能:用户界面渲染、交互处理、数据展示
- 架构特点:组件化、响应式、单页应用
2. API网关层
- 技术栈:Spring Cloud Gateway
- 功能:
- 请求路由与转发
- 负载均衡
- 认证授权
- 请求限流
- 灰度发布支持
3. 服务层
服务层采用微服务架构,各服务独立部署、独立扩展。
核心服务模块
用户服务 (taopiaopiao-user-service)
- 用户注册、登录
- 个人信息管理
- 用户权限控制
订单服务 (taopiaopiao-order-service)
- 订单创建、查询、取消
- 订单状态管理
- 订单相关业务逻辑
支付服务 (taopiaopiao-pay-service)
- 支付处理
- 退款管理
- 支付渠道集成
节目服务 (taopiaopiao-program-service)
- 电影信息管理
- 场次管理
- 排片管理
基础数据服务 (taopiaopiao-base-data-service)
- 影院信息管理
- 城市数据管理
- 基础配置信息
自定义服务 (taopiaopiao-customize-service)
- 个性化推荐
- 用户偏好设置
4. 数据层
关系型数据库 (MySQL)
- 主从架构
- 分库分表策略(按用户ID、订单ID等)
- 主要存储结构化业务数据
非关系型数据库
- Redis:缓存、分布式锁、延迟队列
- Elasticsearch:全文搜索、日志分析
5. 中间件层
消息队列
- 异步处理
- 服务解耦
- 流量削峰
缓存系统
- Redis集群
- 多级缓存策略
技术框架
微服务框架
- Spring Boot
- Spring Cloud
- Spring Cloud Gateway
- Nacos (服务注册发现)
数据访问
- MyBatis-Plus
- Elasticsearch
- Redis
安全认证
- JWT
- Spring Security
监控与日志
- Prometheus + Grafana
- Elasticsearch + Logstash + Kibana (ELK)
关键技术设计
服务注册与发现
- 基于Nacos实现服务注册与发现
- 支持健康检查、服务上下线通知
配置中心
- 集中式配置管理
- 动态配置更新
- 环境隔离
服务调用
- Feign + Ribbon实现声明式服务调用
- 支持负载均衡、熔断降级
分布式事务
- 最终一致性方案
- 基于消息队列的可靠消息模式
限流熔断
- 基于令牌桶算法的限流实现
- 基于Sentinel的熔断降级
灰度发布
- 基于Spring Cloud Gateway的灰度路由
- 支持按用户、比例等策略进行灰度发布
扩展性设计
水平扩展
- 无状态服务设计
- 支持多实例部署
- 自动扩缩容能力
垂直扩展
- 模块化设计
- 服务独立部署
- 按需扩展特定服务
安全设计
网络安全
- HTTPS加密传输
- 防SQL注入
- XSS防护
数据安全
- 敏感数据加密存储
- 数据访问权限控制
- 数据备份与恢复策略
接口安全
- API签名验证
- 请求频率限制
- Token认证机制