模块三作业
前言
本文是学生管理系统的详细架构设计文档,用于指导后续的开发、测试和运维。
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 约束和限制
数据不要全部丢失。
3. 总体架构
3.1 架构分析
3.1.1 高性能
对于学生管理系统来说,单个学校的学生总人数为 6 万左右,性能要求并不高;对于抢课来说,每门课也不会有很多人去抢,系统性能要求并不高。
3.1.2 高可用
对于学生管理系统来说,挂掉即不会对其他系统产生影响,也不会对系统本身产生影响,只要重新修复即可;但是对于学生的数据是不能丢失的,至少数据不能全部丢失。
3.1.3 可扩展
对于学生管理系统来说,需求比较复杂,需要考虑扩展问题。
3.1.4 安全
对于学生管理系统来说,不涉及金融,学生个人信息也没有包含私密信息。
综合来看,学生管理系统需要可扩展、高可用,数据存储需要保证高可用性。
3.2 总体架构
1)系统分为权限子系统、学生子系统、课程子系统、考试子系统。
2)使用一台主 MySQL 和一台备 MySQL,主备进行数据复制,每天定时备份数据库。
4. 详细设计
4.1 核心功能
4.1.1 登录
4.1.2 选课
4.2 关键设计
1)存储可靠性
数据存储在 MySQL 中,有一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证消息存储高可用。如果主库挂掉,手动切换到备库,主库恢复后,把主库作为备库使用。
2)可扩展
为了减低复杂度,系统划分多个子系统,互相独立开发,子系统之间通过接口交互。
4.3 设计规范
1)使用 Spring Boot 2.x 开发
2)服务间接口数据采用 JSON 格式
3)服务间接口的响应时间不能超过 200ms
4)MySQL 使用 Innodb 存储引擎
5. 质量设计
5.1 学生管理系统后台
实现对错误数据的修复,以及数据监控。
5.2 日志
每个子系统都记录日志,为排查问题提供依据。
6. 演进规划
6.1 学生管理系统一期
实现权限子系统、学生子系统
6.2 学生管理系统二期
实现课程子系统
6.3 学生管理系统三期
实现考试子系统
评论