写点什么

学生管理系统详细架构设计

作者:刘洋
  • 2022 年 2 月 13 日
  • 本文字数:1328 字

    阅读完需:约 4 分钟

学生管理系统详细架构设计

前言

本文是学生管理系统详细架构设计文档,用于知道后续的开发、测试、运维。

 

词汇表

 

1.        业务背景

 

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等

功能设计的管理系统。

 

2. 约束和限制

1、         成本不能超过 10w

2、         数据库采用 mysql

3、         前端技术采购 Vue

4、         后端技术采用 Spring Boot

5、         只能标准符合 ISO9001-质量管理体系

 

3. 总体架构

 

3.1 架构分析

3.1.1 存储高可用

对于学生,各科成绩非常重要,如果数据丢失,直接会影响学生的根本成绩。

3.1.2 存储高性能

学生相关的信息比较多,图片等,使用存储高性能

3.1.3 计算高可用

考试、成绩查询为了防止功能不可用出现状态, 需要使用计算高可用, 每个服务启动多节点。

 

3.1.4 计算高性能 可以一次性考试的同学比较多。同时并发的概率有所增加。这里需要用到计算高性能

 

综合以上条件: mysql 高可用, 每一个微服务启动多节点,达到高可用,计算高性能。

 

3.2 总体架构


3.2.1 子系统这里采用微服务实现,每个微服务处理不同的业务。

3.2.2 数据存储采用一台主 MySQL 和一台备 MySQL,主备数据复制。

3.2.3 nginx 负载均衡实现不同的路径访问不同的微服务

 

4. 详细设计

4.1 核心功能

4.1.1 学生登录流程



4.1.2 学生考试流程



4.2 关键设计

 

4.2.1 选课高并发

在选课高峰期的时候,由于人数较多,这个时候会产品高并发的现象,为了防止高并发的现象引入 rockedmq 减轻并发数据库压力。在高并发的情况下会出现这门课程只有 50 人可以学习。但是在高并发的情况下出现了 51 人,所以在这里需要使用 redis 分布式锁处理高并发出现的问题。

4.2.2 数据库主备

为了防止数据丢失,采用主备,多数复制机制

 

4.3 设计规范

4.3.1 负载均衡采用 ngxin 实现

4.3.2 后端技术采用 spting boot mybatis-plus

4.3.2 子系统之间的调用采用 json 格式

4.3.3 数据库采用 mysql 使用 innodb 存储引擎

4.3.4 连接协议 http

5. 质量设计

5.1 可测试性

项目采用单元测试方式,子系统也

5.2 可维护性

打包方式使用 jar,部署方式为 jenkins + docker 部署。 为了防止容器出现错误。每一个服务器启动三节点。

5.3 成本

1) 3 台后端服务器,一台 ngxin 服务器。二台数据库服务器

服务器配置: 三台后端服务器 8 核 16G 内存, nginx 服务器: 4 核 8G

二台数据库: 16 核 32G + 500G 硬盘

每个月的成本不超过 5000 元

5.4 安全性

Spring boot + security 保证系统安全

6. 演进规划

 

用户头像

刘洋

关注

还未添加个人签名 2021.11.30 加入

还未添加个人简介

评论

发布
暂无评论
学生管理系统详细架构设计