【架构训练营 - 模块三】
外包学生管理系统架构文档
前言
该文档主要是外包学生管理系统的详细架构文档,用于指导外包学生管理系统的开发、测试和运维。
词汇表
Nginx
MySQL
Spring Boot
1.业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。由此导致以下几个问题:
管理效率低下
学生信息管理缺乏规范
无法科学分析学生学习情况
基于以上问题,我们开发设计了学生管理系统,应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2.约束和限制
本项目投资经费为 200 万元
项目里程碑(2022 年 01 月 01 日~2022 年 05 月 31 日):
**第一迭代(2022 年 01 月 01 日-2022 年 02 月 01 日):**完成登陆注册、权限管理功能
**第二迭代(2022 年 02 月 01 日-2022 年 03 月 01 日):**完成学生信息管理功能
**第三迭代(2022 年 03 月 01 日-2022 年 04 月 01 日):**完成课程上传以及排课功能
**第四迭代(2022 年 04 月 01 日-2022 年 05 月 01 日):**完成学生选课、考试、评分功能
**第五迭代(2022 年 05 月 01 日-2022 年 05 月 31 日):**完成后台运维管理功能
本项目采用业内主流技术
采用一主一备的 MySQL 数据库,保证数据不会丢失
采用 Nginx 进反向代理
采用 Spring Boot 框架作为脚手架,提供开发效率
本项目对数据存储有不同的实效性要求
学生学籍信息要永久保留
发布课程信息,至少保留 1 年
学生考试成绩和奖惩记录,要永久保留
3.总体架构
3.1 架构分析
高可用:针对学生管理系统,学籍信息丢失会给学生带来很大麻烦
高性能:针对抢课功能模块,课程信息无疑是热点数据,需要保证在 50000TPS
可拓展:因为项目处于初创期,目前只服务于 XX 学校,与业务方的沟通之后,发现需要针对课程考试模块要具有一定的可拓展性能
成本、安全:目前只服务于一个学校,只要部署 4 台服务器;涉及到学生学籍信息,需要进行加密存储
3.2 系统架构
总体架构分为三层:数据层、服务层、网关层
数据层:采用一主一备的 MySQL。一般情况下在主数据库上进行数据的读写,并实时将 binlog 日志在 MySQL 备份数据库进行重放;在主数据库出现故障时,进行主备切换,保证数据服务不会中断。
服务层:基于业务分析和提升项目开发效率,将服务拆分为:学生子系统、课程子系统、权限子系统;每个开发小组负责一个子系统的开发;
网关层:采用 Nginx 作为流量网关和服务网关。一方面利用请求熔断机制,扛住在高并发时的调用压力,防止把整个系统拖垮,保证核心功能(学生管理模块)的可用性;另一个方面,根据不同的请求,路由到不同的服务子系统上。
4.详细设计
4.1 核心功能
4.1.1 账号录入及激活
4.1.2 课程录入及选课时序图
4.2 关键设计
4.2.1 数据的高可用
由于数据存储采用 MySQL 的主备架构,主备之间采用消息复制的方式进行同步。在日常运维过程中,需要考虑消息复制延迟问题,保证数据延迟不超过 30s,并做好日常报警监控。同时,要在日常运行过程中,演练主备切换。
4.2.2 抢课功能的高性能
针对抢课过程中,预估 TPS 会达到 50000TPS,需要考虑在高并发情况下,数据库压力以及不能影响到其他功能的正常使用。
4.3 设计规范
采用 Spring Boot+MyBatis 框架进行开发
MySQL 数据库采用 Innodb 引擎
错误码规范:子系统编码+具体业务错误码;学生子系统:M01,课程子系统:M02,权限子系统:M03
采用 Fegin 作为 web 服务器客户端
表的开发设计以及具体开发规范,可参考《阿里巴巴 Java 开发手册》
5.质量设计
5.1 成本
人力成本:前端(2 人)、后端(4 人),UI(1 人),BA(1 人),日常运维(1 人)
服务器成本:4 台服务器(2 台服务器+2 台数据库)
5.2 可测试性
核心业务单元测试覆盖率达到 85%
核心业务全链路压测
5.3 可维护性
MySQL 主机出现故障时,可自动切换备机
当某个业务功能出现故障时,可进行业务故障隔离,保证其他业务能够正常进行
5.4 可观测性
提供日志查看界面
提供 jvm、CPU 等性能指标监控界面
6.演进规划
学生管理系统项目,采用敏捷开发,分为五个迭代,不断循序渐进,促使项目顺利落地。
版权声明: 本文为 InfoQ 作者【默光】的原创文章。
原文链接:【http://xie.infoq.cn/article/23cf4477745f331b56a7ea96d】。文章转载请联系作者。
评论