写点什么

学生管理系统设计文档

作者:Geek_cb2b43
  • 2021 年 11 月 14 日
  • 本文字数:1719 字

    阅读完需:约 6 分钟

前言

本文是外包学生管理系统的详细架构设计文档,用于指导外包学生管理系统的开发、测试和运维

 

词汇表

Reactor: 网络编程模式

 

nginx: 开源的网络服务器

mysql:数据库存储系统

 

1. 业务背景

为了更好的管理学生,提高学生的学习质量,为学生方便选课,修学分,顺利毕业,提供更好的支持,需要一套完整全面的管理系统,解决同学们上学过程中存在的问题。随着学校规模的扩大,学科的增多目前出现了一些问题。

 

性能问题:在选课的时间,大量学生同时选课,出现卡顿的问题,达到了系统瓶颈,增加了学生选课的时间,在查询成绩时,系统也很慢。

 

耦合问题:以前的管理系统不断添加模块,打补丁,导致模块之间不清晰,耦合度过高,导致系统维护越来越麻烦,需要重新设计架构

 

使用性:同学普遍反映选课麻烦,课程的相关介绍太少,从课程介绍到,学分的选择,到老师的介绍,到选课,需要浏览很多页面。

 

基于以上背景,我们需要重新设计各个模块进行系统解耦,提高每个模块的处理能力,为学生提供方便。

 

2. 约束和限制

 

1.必须在 半年内完成

 

2.成本不能超过 20 万

 

3.数据库采用 mysql

 

4.质量标准符合 ISO9001 标准

 

5 支持在校生 2000 人的同时访问如同时在线选课及查成绩

 

6 满足工作日 24 小时在线服务,且满足单台主机宕机可继续提供服务

3. 总体架构

 


3.1 架构分析

Web 服务采用 nginx,提供 php 服务

数据库采用 mysql ,且主备模式,开启半同步

系统模块分为 学生子系统、课程子系统、权限子系统

3.1.1 高可用

对于学生管理系统,要保证学生课程的可持续性,即使出现一台服务器宕机时,依然可以访问,且已经选好的课程不会丢失。

 

综合来看,学生管理系统需要高可用性,包括学生信息的录入、课程信息的录入、学生选课信息和学分信息都需要保证高可用性。

3.2 总体架构

 

1)采用数据集中的架构,主库与备库部署在不同的服务器,高校学生 2000 左右,一台服务器可以满足架构需求,为了满足在线的同时访问,提高单机内存到 256G,数据全加载到内存,保证读数据在内存中。

 

2)数据库服务器一台主 MySQL 和一台备 MySQL,主备数据复制,主从开启半同步。

 

3)正常情况下,业务系统服务器采用负载均衡对外服务(生信息的录入、课程信息的录入、学生选课信息和学分信息生信息的录入、课程信息的录入、学生选课信息和学分信息)

 

4)器宕机的情况下,单服务器对外提供消息读取的服务。

 

5)客户端采负载均衡策略,随机选择业务系统,更新和查询信息。

 

4. 详细设计

1 业务系统采用两台服务器,实现负载均衡

 

4.1 核心功能

 

4.1.1 学生子系统

学生信息更新



4.1.2 课程子系统



4.1.3 选课过程



4.2 关键设计

 

1)高并发设计,mysql buffer pool 设置 150G(内存为 256G),当年的数据不会太大,可保证热点数据全部在内存中,确保数据库的高并发性

2)高并发设计,两台主机部署,管理系统,实现无状态,访问任意一台主机能满足需求

   且管理系统与数据库主机在一台交换机且万兆,保证读取更新的高效性

3)对外服务的 nginx 提供负载均衡,保证管理系统的负载均衡,且可扩展

 

2)数据存储可靠性

 

消息存储在 MySQL 中,有一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证消息存储高可用,采用半同步。 保证数据不会有复制延迟,备库采用 mts 多路复制,提高回放的并发性,保证主库宕机后,在 1s 内保证切换成功。管理系统可自动切换到备库。

 

3)数据如何存储

 

Mysql binlog redo 日志单独一个 nvme 磁盘,保证高效顺序写,实现高消息

数据单独一个磁盘,在刷脏时,不影响顺序写,实现数据库的高效性

 

4.3 设计规范

 

1)管理系统使用 php 开发

 

2)MySQL 使用 Innodb 存储引擎

 

3)TCP 包的结构设计 4 字节长度+内容长度

 

4)数据库字段全部用 varchar ,编码 gb2312,节约存储空间

 

5. 质量设计

 

5.1 消息队列管理后台

实现 扩展性  高可用 ,需要对应的宕机测试

后台管理监控 系统资源使用情况

5.2 成本

服务器 :数据库 2 台 管理系统 2 台(可扩展) Nginx 实现负载均衡 2 台(主从)

一期投入 6 台服务器

 

6. 演进规划

 

6.1 学生管理系统一期

实现学生管理系统的基本功能,5 个月内保证系统运行。

6.2 消息队列二期

硬件资源管理,且资源使用情况

6.3 消息队列三期

学生管理系统服务的自动扩容,通过后台管理实现

 

用户头像

Geek_cb2b43

关注

还未添加个人签名 2020.10.20 加入

还未添加个人简介

评论

发布
暂无评论
学生管理系统设计文档