架构训练营模块三作业
前言
外包学生管理系统详细架构设计文档
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。由此对学校日常工作带来几个新的问题:
需要占用老师大量的时间来处理相关信息
数据全部由人工处理,效率低下
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化。
主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
2. 约束和限制
系统数据需要有长期可靠的保存
学校师生共有约两万人,需保证师生正常使用
3. 总体架构
3.1 架构分析
3.1.1 数据高可用
系统会存储包括学生试卷,学生笔记,考试成绩,课程安排等信息,如发生丢失会对相关人员造成较大影响,事后恢复会十分麻烦。需要确保数据的高可用,不能发生数据丢失。
3.1.2 服务高可用
在一些固定时间,例如考试周等。需要服务拥有足够的稳定性确保老师能在需要的时间内进行试卷题目的筛选编排,对学生试卷的批改及成绩的录入等。
3.2 总体架构
nginx 作为请求入口,提供流量的统一接入。并根据请求路径将请求路由到不同子系统。
整个项目业务功能由学生子系统,课程子系统,权限子系统来共同实现
数据库采用 mysql 主从配置,业务读写全部由主来完成。从作为备份提供数据高可用。
4. 详细设计
4.1 核心功能
4.1.1 排课功能
4.1.2 考试管理
4.2 关键设计
4.2.1 数据高可用
使用 mysql 主从架构,业务读写走主数据库,主库同步将数据写至从库,确保数据不会发生丢失。
4.3 设计规范
使用 Spring Boot 开发,使用框架内置 tomcat 容器运行服务
MySQL 使用 innodb 存储引擎
服务间使用 http 通信
使用 json 作为服务器数据通信格式
5. 质量设计
5.1 管理员
提供管理员所有权限,可以后台查看到系统中的所有数据,可对相关数据进行操作
5.2 可维护性
权限设计要足够灵活,管理员可根据需要自由组合权限的用户
6. 演进规划
6.1 一期
完成业务需求的开发,测试,上线
评论