写点什么

架构作业 3- 外包学生管理系统架构文档

作者:许四多
  • 2022-10-23
    浙江
  • 本文字数:1328 字

    阅读完需:约 4 分钟

作业要求

前言

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

修订历史


词汇表


1. 业务背景

随着学校规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。这也带来了以下几个问题:

  • 维护困难:信息大、处理复杂,前后需要花费大量的教师资源处理数据

  • 效率低:学生选课等都是手动录入,手动查询,记录的效率低

  • 准确度低:手工录入难免会有人为因素的错误

所以我们需要建设外包学生管理系统,将繁琐的程序搬入线上进行管理

2. 约束和限制

外包方案需在 2022 年 11 月 11 日前完成;

  • ISO9001 质量体系标准;

  • 数据库采用 MySQL;

  • 学校维护团队擅长 java


  • 3. 总体架构



    3.1 架构分析

    3.1.1 高可用

    对于外包学生管理系统来说, 允许出现少量学生信息的丢失情况出现,并需要有相应的补救 sop。同时需要避免大范围的信息数据丢失情况发生,会需要有数据的备份。

    3.1.2 高性能

    外包学生管理系统主要维护学生的学籍、课程、成绩、奖惩信息, 由于学生人数较少, 瞬时信息量较小, 因此对性能要求不高

    3.1.3 可扩展

    外包学生管理系统目前主要维护学生的学籍、课程、成绩、奖惩信息, 后续可能会有学生就业信息的管理, 因此需具备一定的可扩展性

    3.1.4 成本

    由于系统本身属于管理后台, 面向人群少, 使用场景较固定, 开发难度较低, 因此开发周期和人力不太多

    综合来看, 外包学生管理系统需要具备可扩展性, 对高可用、高性能要求不高, 时间和人力成本要求较少

    3.1.5 安全

    系统提供权限管理和数据安全访问.


    3.2 总体架构

    1. 采用微服务的架构, 将系统分为学生子系统、课程子系统、权限子系统.

    2. 3 个子系统共用一台主 MySQL 和一台备 MySQL, 主备数据复制. 主 MySQL 负责读写, 备 MySQL 只负责读.

    3. 通过 nginx 进行服务分发, 实现外部于内部子系统交互.


    4. 详细设计


    4.1 核心功能

    学生信息录入与教师审核

    4.2 关键设计

    4.2.1 学生信息录入的可靠性

    通过设计一主一备 mysql 数据库用于储存学生信息,两台设备分别负责写和读,主备之前通过复制进行信息的同步,读写数据库各司其职,短时间的写入宕机导致的数据丢失不影响数据的读取,以达到数据一致性。

    4.2.2 课程选择的可靠性

    学生选课过程中如果出现瞬时大流量达到整体系统处理峰值,将会进行接口限流处理,选课失败的同学可以通过重试实现选择

    4.2.3 系统的安全性

    前端与 nginx 交互使用 https 协议, 并增加 token 校验, 对于用户输入的内容进行混淆和转码.

    4.3 设计规范

    • 后端系统采用 spring boot 完成项目搭建,前端使用 Vue 构建页面;

    • 学生子系统、课程子系统、权限子系统均使用 java 语言进行开发, 子系统间基于 zookeeper 协议实现子系统之间的交互;

    • 数据库服务端采用一台主 MySQL 和一台备 MySQL, 主备数据复制. 主 MySQL 负责读写, 备 MySQL 只负责读;

    • 前端通过 nginx 代理转到服务端.

    5. 质量设计

    5.1 可测试性

    因系统角色较少, 功能较简单, 包含的业务模块较少,测试难度较低;

    5.2 可维护性

    系统采用微服务拆分 3 个子系统, 子系统数量较少, 维护成本低;

    5.3 可观测性

    使用性能检测工具对服务器运行状态,系统在线服务情况进行监控, 对于异常情况进行报警; 当进程遇到特殊情况退出时实现自动重启服务.


    6. 演进规划

    6.1 外包管理系统 1 期

    完成学生管理、课程管理、权限管理

    6.2 外包管理系统 2 期

    完成学生考试管理、在线课堂管理和直播系统等

    发布于: 刚刚阅读数: 4
    用户头像

    许四多

    关注

    还未添加个人签名 2018-05-03 加入

    还未添加个人简介

    评论

    发布
    暂无评论
    架构作业3-外包学生管理系统架构文档_许四多_InfoQ写作社区