写点什么

学生管理系统架构设计方案

用户头像
面朝大海
关注
发布于: 2 小时前

前言

本文是针对学生管理系统的优化架构设计方案,用于指导学生管理系统后续的开发、测试和运维工作

词汇表

SpringCloud:后端微服务框架

Vue/ElementUI:前端基础框架

Nginx:负载均衡/反向代理服务器

MySql:关系型数据库

1. 业务背景

伴随着近几年学校学生数量、课程数量的不断增长,开始逐步出现对于学生管理系统的一些个性化需求,例如支持学生自主选课、提供更加友好的界面、提供更加便捷的后台维护功能等,而现有学生管理系统存在技术栈老旧、可扩展性差、前端页面不友好等诸多问题,导致若想支撑更多个性化、人性化的需求变得难以实现,故本次计划展开对学生管理系统的优化升级工作,核心主要解决如下几个问题:

  • 扩展问题:现有系统采用 springmvc/jsp 框架实现,代码混乱,通过对技术栈、基础架构的优化设计,能够实现便捷高效的开展更多个性化需求的开发

  • 可用性问题:现有系统性能低下且不稳定,经常出现服务不可用,需要提高服务可用性

  • 增量需求:实现自主选课功能

2. 约束和限制

  • 系统上线时间为 2022 年 1 月 1 日

  • 实施成本预算在 50 万以下

  • 数据库必须使用 MySql

  • 系统核心技术栈采用 SpringCloud,方便后续运维开发接入

  • 服务上线后 QPS 能够支撑到 300

3. 总体架构

3.1 架构分析

3.1.1 高可用

学生管理系统是教师和学生日常必用系统,若服务出现不可用,会严重影响学校教学工作的开展,因此系统架构设计应该充分考虑可用性,降低服务不可用的概率

3.1.2 高性能

学生管理系统主要面向全校师生,整体功能设计方面并无高并发业务场景,且学生使用该系统的时间较为分散,因此性能方面可适当降低标准

3.1.3 可扩展

原学生管理系统存在难以扩展的问题,严重阻碍系统的优化迭代,因此需要在架构层面和技术方案对可扩展性做充分考虑

3.2 总体架构


  • 学生管理系统服务拆分为权限子系统、学生子系统、课程子系统、网关 API

  • 系统分层

  • Web 服务层:基于 Nginx 搭建 web 服务器,部署前端网页,同时作为反向代理和负载均衡服务器

  • 应用服务层:基于 SpringCloud 构建微服务集群,网关实现路由、负载均衡、鉴权等功能

  • 数据库层:基于 MySql 构建主从数据节点,从节点主要用于实现数据备份

4. 详细设计

4.1 核心功能

  • 权限系统

  • 提供用户注册、登录、查询等基础功能

  • 提供权限配置和变更功能

  • 提供数据审计追踪功能

  • 课程系统

  • 提供老师录入课程、课程分类、课程标签分类等课程类功能

  • 提供老师课程排课功能

  • 提供学生对于课程评分功能

  • 学生系统

  • 提供学生检索课程、远程选课功能

4.2 关键设计

  • 基于 Nginx 构建 web 服务器实现负载均衡、页面缓存

  • API 网关设计实现统一接口鉴权

  • 数据库主从同步实现数据备份,同时方便后续推进读写分离

4.3 设计规范

  • 采用前后端分离方式,前端使用 Vue/ElementUI, 后端使用 SpringCloud 微服务框架,由于服务数量有限,部署方面直接使用脚本部署,不考虑容器化部署

  • 接口基于 Json 格式传输,需要定义统一的全局返回数据格式和全局异常处理

  • Nginx 作为 Web 服务器提供前端网页访问资源,同时对 API 网关实现负载均衡

  • API 网关除实现路由功能外,需要与权限服务对接实现网关层面的统一鉴权控制

  • 数据库基于 binlog 的二进制格式进行主从同步,应用层面读写分离暂不考虑

5. 质量设计

5.1 可测试性

  • 系统需要提供一套标准规范的 API 文档(接口参数、说明、返回字段等描述清晰准确),用于实现接口测试

5.2 可维护性

  • 文档齐全:系统架构文档、应用部署文档、环境搭建文档、数据字典

  • 代码规范符合阿里编码规范手册、内部项目开发手册标准

  • 服务采用脚本部署,需要提供完善的脚本和对应说明

5.3 可观测性

  • 考虑成本的原因,暂不考虑引入 Promethues 和 Grafana 监控平台,可直接使用 SpringBoot admin 进行服务监控

  • 对于一些重要功能模块应该提供审计追逐功能

6. 演进规划

  • 2022 年 1 月 1 日完成 1.0 版本的发布,需要实现基础功能和自主选课功能,同时支撑平滑过渡

  • 2.0 版本需求待 1.0 版本上线收集需求重新确定功能范围

用户头像

面朝大海

关注

我们终会上岸,阳光万里 2019.06.02 加入

互联网金融从业者

评论

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