架构实战营:模块三作业
前言
本文是外包管理系统的架构设计文档,用于指导该系统后续的开发、测试、运行和维护工作
词汇表
Nginx:反向代理服务器,可以做 http 缓存
1. 业务背景
随着学校规模的扩大,需要处理的数据量也增加,需要教师和学生花费大量时间处理数据,为提高相关效率,所以需要本系统
2. 约束和限制
1、工期限制
2、学校成本
3、数据高可用,避免数据丢失
3. 总体架构
3.1 架构分析
业务复杂度:整体复杂度较高,拆分成子系统减少复杂度。
高可用:系统高可用需求较低,但是数据的高可用需求很高。
高性能:选课系统存在高并发场景,需要有机制支持这种突发情况。
3.2 总体架构
数据库采用主备模式。
子系统单独部署。
nginx 将请求代理到子系统。
4. 详细设计
4.1 核心功能
4.2 关键设计
数据高可用。数据库采用主备数据同步。
针对选课这种高并发场景,课程信息和课程选择进度需要使用缓存,每一次选课请求使用消息队列异步处理。
4.3 设计规范
子系统使用 Spring Boot 开发
MySQL 使用 InnoDB 存储引擎,同步方式选择 binlog
选课场景并发使用 redis 作为缓存系统。
评论