模块三
前言
本文是学生管理系统的详细架构设计文档,用于指定学生管理系统的开发、测试和运维。
词汇表
Nginx: 高性能 web 服务器
Mysql: 关系型数据库管理系统
1. 业务背景
由于国家继续教育的政策,除了正常的招生以外,还有很多其他形式的继续教育学生,导致学校的办学规模不断地扩大。需要相应处理的信息量也日趋增大。若使用教师来人工处理大量数据,则会花费大量的人力。
为了提高学生信息的管理效率,优化人力资源,降低管理成本,根据学生管理的新需求设计开发一套新的管理系统迫在眉睫。
本学生管理系统可以对信息进行系统规范化地管理、支持多种形式的招生、提供科学的统计表格和快速增加、删除、修改、查询等,提供日常管理的工作效率以及报表需求。
2. 约束和限制
整体项目成本不超 100 万元人民币。
必须在 2022 年秋季开学前完成。
数据安全需要符合等保 2.0 的网络安全等级保护设计技术要求(
GB/T25070-2019
)。数据库采用 MySQL。
需要保证数据的高可用性。
能处理两万名在校学生。
3. 总体架构
3.1 架构分析
3.1.1 数据高可用
学校所有学生的学业信息都记录在系统中,若记录丢失,则违反了教育部要求学校保留学籍信息的条例。
所以在任何时候,都需要保证数据的高可用。
3.2 总体架构
使用
Nginx
反向代理以及负载均衡到不同业务子系统。使用
Mysql
主备方案,实现数据的高可用。根据业务的需求,划分为学生子系统、课程子系统、权限子系统。不同的子系统独立部署,各子系统之间互不影响。
4. 详细设计
4.1 核心功能
4.1.1 学生管理
系统登陆。
信息查询。
4.1.2 课程管理
课程开课
学生选课
排课功能
4.1.3 权限管理
角色管理
功能管理
4.2 关键设计
业务可拓展性。整体拆分为三个子系统,各子系统维护不同领域的业务实现,便于后续扩展其他功能。
数据高可用。采用
Mysql
主备方案,主节点宕机后,从节点也能保证数据的完整性。零信任。子系统之间通讯采用双向证书加密,确保符合等级 2.0 中的要求。
4.3 设计规范
业务开发采用
Spring Boot 2.x
框架。子系统之间的通讯采用
JSON
交互, 遵循Restful
风格。Mysql
使用Innodb
存储引擎。
5. 质量设计
5.1 可测试性
采用 swagger 定义 API,交互接口有单元测试。
5.2 可维护性
在代码提交的时候,做代码 review。
5.3 可观测性
建立全链路监控系统。
5.4 成本
成本需控制在 100 万以内。
6. 演进计划
6.1 一期
完成各个子系统的开发
完成各个子系统的内部测试
6.2 二期
上线部分业务做测试
进行灾备演练
6.3 三期
上线所有业务。
评论