架构实战营 - 模块三作业
写出外包学生管理系统的架构文档
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改
不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高
信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其
主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 约束和限制
1、要求可以通过公网域名访问;
2、能够支撑管理 1000 个学生;
3、必须在 2021.06.30 号之前完成;
4、成本不能超过 2 万。
3. 总体架构

a) 使用 Nginx 来作为反向代理服务器。根据路由规则分别访问学生子系统、课程子系统、权限子系统。
b) 各子系统读写数据都走 Mysql 主数据库, 同时采用半同步方式实现主从复制。
4. 详细设计
4.1 核心功能
选择课程时序图

保存课程时序图

4.2 关键设计
1)保存课程的高可用性。
为了保证可用性,课程子系统可以启多个服务节点。
2)数据存储可靠性。
mysql 数据库使用自动主从切换。
3) 账号的安全性。
为保证用户的安全性,密码使用 MD5 加密存储。
4.3 设计规范
1) 服务端使用 Spring Boot+Mybatis 开发;
2) Mysql 使用 Innodb 存储引擎;
3)接口返回使用 json 数据格式。
5. 质量设计
5.1 成本
为了降低成本,Nginx 和应用系统共用一台服务器。
5.2 安全
为了保证安全性,域名申请为 https
6. 演进规划
6.1 一期计划
注册、登录、选课、权限等功能
6.2 二期计划
在线习题、在线考试等功能。
评论