写点什么

架构训练营 - 学生管理系统详细架构文档

用户头像
sophiahuxh
关注
发布于: 3 小时前

前言

 

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

 

词汇表

 

1. 业务背景

 

学生管理系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范

化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。



2. 约束和限制


  1. 数据不要全部丢失 

  2. 业务复杂,拆分成子系统

  3. 项目开发人员都熟悉 Java

3. 总体架构

 


Rank:

  • Nginx 负责 request routing and load balancer。

  • 学生子系统,课程子系统,权限子系统 负责业务处理

  • MySQL 是负责数据存储。

Role:

Relation

  • Nginx 是反向代理服务器

  • 业务服务器通过 JDBC 与 MySQL 交互

  • MySQL 主从

    采用 MySQL 主从同步。

    直接用 MySQL 的主从复制来实现数据复制

    主机宕机后,手动启用 MySQL 从服务器

 

3.1 架构分析

 

高可用:学生管理系统容忍度比较高,一次访问失败,可以刷新或者等服务重启。它的业务不需要高可用

 

高性能:学生管理系统是面向在校学生和老师访问的。假设一共有 3w 人,一天每人访问一次。qps = 3w/86400 < 1. 高峰时刻预估是平时的 5 倍,qps ~ 2 次每秒。所以高性能不是主要考虑因素

 

高扩展:在学校有很多系,每个学院可能会有自己的需求,所以高扩展需要考虑。所以咱们的系统分成了三个子系统。如果业务需求需要进一步扩展,可以再次拆分

3.2 总体架构



4. 详细设计

4.1 核心功能

 

用户登录



信息查询



选课



4.2 关键设计

 

登录 ID 如何设计

  • 可以由以下几个部分组成

  • ID 类别 老师/本科/研究生

  • 入职/入学年份

  • 所在系的编号

  • 班级

  • 序列号

  • 比如某学校本科2021 级,计算机学院8 班,班级序号 11,他的学号可以设计为 3 2021 06 08 11 

 

对于已毕业的学生信息存储,可以移库。

安全性:此系统可以仅学校内网访问

 

4.3 设计规范

客户端与服务子系统之间用 JSON 格式传递数据

5. 质量设计

可维护性:会开发一个运营后台系统方便管理

6. 演进规划

可以把每个子系统容器化,上云。

如果接下来业务增加的话,可以继续增加新的子系统

用户头像

sophiahuxh

关注

还未添加个人签名 2018.05.03 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营-学生管理系统详细架构文档