写点什么

架构实战营 - 模块三作业

用户头像
南山先生
关注
发布于: 2021 年 09 月 16 日

前言


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


1. 业务背景


随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。

2. 约束和限制

1.团队只有 3 个人,大家都会 JAVA,有一个是 PHP 高手

2.资金不充裕

3.研发时间不超过 3 个月

3. 总体架构

3.1 架构分析

3.1.1 高性能

学校人员有限,最多万人,无需单独考虑高性能设计

3.1.2 高可用

学生相关数据要确保不能丢失,此处通过主备 mysql 实现热备,

每日定时备份数据,实现冷备。

3.1.3 可扩展

系统包含学生管理、课程管理、考试管理、权限管理,业务需求较复杂、为了后期扩展需求

将系统按业务拆分成学生子系统、课程子系统、权限子系统

学生子系统:学生管理

课程子系统:课程管理、考试管理

权限子系统:权限管理

3.1.4 成本

5 台服务器(8c16)即可满足系统运行需求,成本设计可不考虑

3.1.5 安全

不涉及用户隐私等数据,安全可不考虑

3.2 总体架构


(1)使用 nginx 做反向代理,统一对外出口

(2)学生子系统负责学生管理功能模块、课程子系统负责课程管理和考试管理模块功能、权限子系统负责权限管理模块功能开发

(3)存储使用 mysql,使用主备模式进行部署


4. 详细设计

4.1 核心功能

4.1.1 账号生成

4.1.2 账号登录

4.1.3 组卷

4.2 关键设计

4.2.1 数据高可用设计

(1).热备份:使用 mysql 主从同步实现

(2). 冷备份:按日备份数据

4.2.2 单点登录设计

(1).3 个子系统规划在同一个域名下,通过不同上下文做代理

(2).3 个子系统 tomcat 之间做 session 共享

4.3 设计规范

(1)使用 springboot+springMVC+mybatis 作为子系统开发框架

(2)mysql 使用 innodb 存储引擎

(3)系统之间交互使用 http 协议

5. 质量设计

5.1.1 可测试性

5.1.2 可维护性

使用 logback 打印运行日志,协助线上问题定位

5.1.3 可观测性

使用 zabbix 作为运营监控平台

5.1.4 成本

5.1.6 安全

使用 shiro 框架做用户权限管控

6. 演进规划

6.1 学生管理系统一期

实现学生管理、课程管理子系统

6.2 学生管理系统二期

实现权限管理


用户头像

南山先生

关注

还未添加个人签名 2018.10.16 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营-模块三作业