学生管理系统详细架构设计文档
1.业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2.约束和限制
控制成本两台服务器
2 个月开发周期
数据库采用 mysql
3.总体架构
3.1 架构分析
3.1.1 高可用
对于学生管理系统来说最重要的就是保证信息不能丢失,包括学生信息,教师信息,课程信息等等,如果不能采取有效的手段导致信息丢失带来的后果非常严重。
综合来看,采用 mysql 数据库主从备份机制保证信息高可用是一个不错的选择。
3.2 总体架构
系统采用多实例部署,每个系统分别部署两套实例在两台服务器上,保证系统的高可用。
Nginx 做负载均衡,采用轮询机制,将请求分发到两台服务器。
如果一台服务器宕机,Nginx 将请求代理到正常的服务器。
数据存储在 mysql,利用 mysql 主从备份机制,同步保存数据备份,主库宕机自动切换到从库继续提供存储服务,保证数据存储的高可用。
系统采用前后端分离开发设计,前端用 vue 开发,后端用 springboot 开发。
4.详细设计
4.1 核心功能
4.1.1 查询课程流程
4.2 关键设计
服务请求的高可用
前端程序访问后端服务,由 nginx 反向代理到具体的系统服务,nginx 采用轮询方式做负载均衡,当其中一台主机宕机,修改 nginx 代理,将请求代理到正常的服务器,保证系统的高可用。
数据存储的高可用
数据存储采用 Mysql 主从复制机制
主库将数据库的变更操作记录到 Binlog 日志文件中
从库读取主库中的 Binlog 日志文件信息写入到从库的 Relay
Log 中继日志中从库读取中继日志信息在从库中进行 Replay,更新从库数据信息
4.3 设计规范
客户端程序采用 VUE3.x 开发
服务端程序采用 Spring Boot2.x 开发
数据库采用 Mysql8.0,使用 Innodb 存储引擎
前后端通讯采用 json 数据格式
服务端返回相应体
5.质量设计
通过学生管理系统客户端测试系统整体的功能流程。
6.演进规划
一期完成所有功能
评论