写点什么

外包学生管理系统架构文档

作者:Geek_7a789a
  • 2022 年 6 月 08 日
  • 本文字数:1391 字

    阅读完需:约 5 分钟

外包学生管理系统架构文档

前言

随着学校的规模不断扩大,学生数量的增加,需要处理的信息也日趋增大。为提高学生管理的管理水平、设计学生管理系统来解决学生信息管理数量信息量大、修改不方便,对数据难以进行分析等问题。

本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规划化、自动化


修订历史

词汇表


1. 业务背景

随着学校的规模不断扩大,学生数量的增加,需要处理的信息也日趋增大。为提高学生管理的管理水平、设计学生管理系统来解决学生信息管理数量信息量大、修改不方便,对数据难以进行分析等问题。

本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规划化、自动化,主要任务是统计学生各类信息,进行日常的管理,如学生信息的增删改查以及学生选课和成绩查询等功能


2. 约束和限制

1.必须在 2022.09.1 号前完成

2.成本不能超过 100 万

3.数据库采用 Oracle

4.质量标准符合 ISO9001-XXXX 标准

5.必须支持管理 20000 个学生


3. 总体架构

3.1 架构分析

高性能:对于学生管理系统来说,总学生应该也就几万人,对学生管理系统的要求不高;针对一些抢课或者考试成绩查分等场景,并发也不会超过 500,对于一个系统的处理性能要求也不高。

高可用:学生信息不能全部丢失,对于数据的储存稳定性要求比较高,对于服务器宕机几个小时并不会特别有影响

可扩展:需要对接学生、以及学生的成绩,后续还有教师的课程以及选课等业务,需要考虑后续业务发展

成本、安全:由于只在一个学校中使用,服务器成本应该不高;由于系统中不涉及学生、教师等的私密信息,不涉及资金流转,安全性上的要求也不算高。


3.2 总体架构

网关层:

  • Nginx 作为网关,通过公网域名访问网站,使用 nginx 转发到下游服务器

服务层:

  • 包含三个微服务,学生微服务、课程微服务以及权限微服务,教师和学生的权限不一样,需要对其进行权限管理

数据层:

  • 数据层通过一主一从两台 MySQL 数据库服务器来组成,主服务器负责日常所有业务数据的读写,并实现主备数据同步,发生故障时可以进行主备切换。

  • 因为学生信息比较重要,且不能丢失,通过主备服务来保证数据的可用性

4. 详细设计

4.1 核心功能

4.1.1 查询基本信息

  1. 判断当前登陆用户权限

  2. 学生和教师的权限不一致,教师可以查询所授课程以及学生信息,学生只能查询自己的信息

4.1.2 考试分数管理

  1. 判断当前登陆用户权限

  2. 教师可以进行分数的上传、修改以及查询

  3. 学生只能进行分数的查询

4.2 关键设计

主备 MySQL 设计:

通过主备 MySQL 来保证数据的高可用性,保障学生信息不会轻易丢失,同时保障大部分时间数据是可用的

4.3 设计规范

1) 数据交互采用 Json 格式

2) 服务层采用 Java 语言开发

3) 数据库使用 Mysql 5.7 版本 存储引擎采用 innodb 存储引擎

5. 质量设计

可测试性:

  • http 接口建立 postman 测试用例。

  • Dubbo 接口通过 Dubbo 管理控制台建立测试用例。

  • 超级管理员具有学生信息、教师信息、权限信息的删除权限,这样能保证测试后的一些测试脏数据可以通过超级管理员进行删除。

可维护性:

  • Dubbo 具有控制台进行管理。

  • mysql 可通过运维控制台进行管理。

可观测性:

  • 系统性能观测,Dubbo、zookeeper、服务器、mysql 等,使用云平台提供的控制台进行系统监控。

  • 业务数据由于没有多少,不需要监控。

成本:

  • 目前云服务器的成本还是比较低的,而且由于性能要求不高,整体服务器可以选普通的服务器即可。


6. 演进规划

一期完成学生的基础信息管理以及课程服务和权限服务等功能

二期完成选课以及考试成绩录入以及查询等功能

用户头像

Geek_7a789a

关注

还未添加个人签名 2020.06.29 加入

还未添加个人简介

评论

发布
暂无评论
外包学生管理系统架构文档_Geek_7a789a_InfoQ写作社区