写点什么

学生管理系统架构文档

作者:drizzle
  • 2021 年 12 月 17 日
  • 本文字数:1003 字

    阅读完需:约 3 分钟

前言


词汇表


1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,

处理效率也十分低下。

为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从

学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改

不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。


2. 约束和限制

  1. 必须在 2022.03.01 完成

  2. 数据库采用 MySQL


3. 总体架构

3.1 架构分析


3.1.1 高可用

对于课程子系统而言,在国家统一考试期间,需要保证系统的可用性,如果系统不可用或者数据丢失,会有可能造成非常严重的问题;对于学生子系统而言,需要保证数据的可用性,不能因为服务器宕机而导致所有学生信息丢失;

3.1.2 高性能

对于学生管理平台而言,对于性能不用要求那么高

3.1.3 可扩展

对于后期添加新的需求,在原有的基础业务不满足的情况,可以添加一个新的业务模块来保证可扩展


3.2 总体架构

1)将业务拆分为学生子系统、课程子系统、权限子系统

2)数据存储包含一台主 MySQL 和一台备 MySQL,主备数据复制,主 MySQL 提供数据写入和数据读取服务,备 MySQL 不对外提供服务;主 MySQL 宕机的情况下,备 MySQL 对外提供数据读取服务。

3)学生子系统包含学生信息,账号信息,院系信息;课程子系统包含试卷信息,课程信息,成绩信息;权限子系统包含权限设置,教师/辅导员对学生和课程的信息操作

4)采用 Nginx 作为路由转发,转发到对应的各个子系统


4. 详细设计


4.1 核心功能


4.1.1 学生登录流程


4.1.2 教师课程录入和学生选课流程


4.2 关键设计

1)数据存储可靠性

数据存储在 MySQL 中,有一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证消息存储高可用。如果主备间出现复制延迟,恰好此时 MySQL 主服务器宕机导致数据无法恢复,则部分消息会永久丢失,这种情况不做针对性设计,DBA 需要对主备间的复制延迟进行监控,当复制延迟超过 30 秒的时候需要及时告警并进行处理。MySQL 主服务器宕机之后,采用 Keepalived 进行备服务器进行提供服务,DBA 需要进行监控并处理


4.3 设计规范

1)各个子系统均使用 Spring Boot 开发

2)MySQL 使用 Innodb 存储引擎

3)各个子系统之间采用 HTTP 通讯,数据传输格式为 Json,接口规范采用 RestfulApi


5. 质量设计


6. 演进规划

6.1 学生管理系统一期

6.2 学生管理系统二期:添加登陆的 oAuth2 的签名校验;提升选课的性能问题


用户头像

drizzle

关注

还未添加个人签名 2019.03.27 加入

还未添加个人简介

评论

发布
暂无评论
学生管理系统架构文档