写点什么

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

  • 2022-12-27
    北京
  • 本文字数:1110 字

    阅读完需:约 4 分钟

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

前言

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

修订历史

——————————————————————————

| 版本号 | 变更内容 | 修订者 | 日期 |

——————————————————————————

| V1.0 | 编写设计文档 | 八一君 | 2022/12/26 |

——————————————————————————

词汇表

VUE :前端架构

Druid :数据库连接池

Dubbo:远程架构调用框架

Nginx:负载均衡

1 业务背景

由于学生数量众多,线下存储学生相关信息存在相当大的困难,且浪费人力物力。基于此背景我们要实现以下功能

  • 实现学生信息线上录入功能,方便查询

  • 实现课程线上维护,便于学生对课程的选择、分数的查看

  • 实现老师和学生不同身份在系统的协同操作

2 约束和限制

  1. 必须使用 MySQL

  2. 必须在 2022.06.30 日完成

  3. 费用不可超过 100 万

  4. 数据不可丢失

3 总体架构

业务架构图

系统架构图



3.1 架构分析

3.1.1 高性能

支撑 1000 人访问,系统允许短暂不可访问,不会影响学校整体管理,学校教学不是太依靠该系统来管理所以高可用要求不高,后续有需要可扩展多台业务服务器处理。

3.1.2 高可用

存储设备一主一备,保障数据不丢失

3.1.3 可扩展

目前主要的模块分为学生管理、课程管理、权限管理,后续可再拓展其他模块如活动管理

3.1.4 成本

框架采用 MVC,组件也都采用开源节约成本

3.2 总体架构



  1. 采用 Nginx 进行负载

  2. 协议层控制可以灵活更换访问协议,dubbo 或 HTTP

  3. 多子系统方便后续扩展

  4. 开源数据库连接池便于维护

  5. MySQL 主备防止数据丢失

4 详细设计

4.1 核心功能

4.1.1 学生登录


4.1.2 教师登录


4.2 关键设计

4.2.1 可扩展

系统拆分为多个子系统,具有可插拔性,通过权限系统配置灵活使用,为后期扩展铺好道路

4.2.2 安全

数据库采用一主一备,当主数据库发生问题时可以切换备库使用,不影响系统的实用性;待主库修复好可采用 binlog 同步信息恢复使用

4.3 设计规范

  1. 整体采用 SpringMvc 架构

  2. 前段架构采用 VUE

  3. 协议采用 HTTP 协议

  4. 数据传输使用 JSON 格式

  5. MySQL 引擎采用 Innodb

  6. 数据库连接池使用 Druid

5 质量设计

5.1 可测试性

系统整体架构较简单,分成 3 个子系统可以做单接口测试,也可全链路测试,易于测试

5.2 可维护性

Nginx 应用已比较广泛、且业务子系统不多,数据库也只有一主一备,易于维护

5.3 可观测性

  • 系统具有 log 能力,日常运营可通过日志观察处理

  • 学校学生人数比较稳定,mysql 统计数据能力也可以处理

5.4 成本

  • 都采用开源组件,都是免费

  • 系统架构简单,不需要太多人参与,节省人力

6 演化规化

  • 第二期可扩展子模块 考试管理、活动管理,方便查询成绩以及学校组织活动管理

  • 第三期可扩展业务系统机器数量和存储 mysql 数量,优化权限系统接入多学校使用


用户头像

还未添加个人签名 2020-11-15 加入

还未添加个人简介

评论

发布
暂无评论
外包学生管理系统-架构设计文档_不爱学习的程序猿_InfoQ写作社区