架构模块三作业
前言
本文是外包管理系统详细架构设计文档,用于外包管理系统的后续的开发、测试和运维。
词汇表
nginx: 高性能的 HTTP 和反向代理 web 服务器,用来作为系统的负载组件。
mysql: 关系型数据库管理系统,用来存储外包管理系统的数据。
主备:mysql 集群的一种数据高可用架构模式。
spring: java 开发框架。
springboot:集成 spring 相关功能组件的框架,便于开发。
mybatis:一种基于 java 的持久层框架,使用广泛。
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改
不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高
信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等
功能设计的管理系统。
2. 约束和限制
技术栈:springboot、mybatis、mysql、nginx、前后端分离。
时间:2022.5.20 前需要开发完成,2022.6.20 前测试完成并上线 2022.7.20 开始投入使用。
费用:开发成本不能超过 50 万。
开发者数量:不超过 3 个。
3. 总体架构
3.1 架构分析
3.1.1 高可用
从系统信息来看,偶尔丢失一两条学生信息或其他信息,可以通过人工补录的形式补偿,对数据的高可用要求不高。
3.1.2 高性能
系统的应用场景不具备高并发等场景,使用频率不会很高,故对于高性能没有过多要求。
3.1.3 可扩展
学生管理系统的业务场景变化不是很多,对于扩展性要求不高。
3.2 总体架构
1、nginx 作为后端服务代理
2、nginx 作为 web 前端服务代理
3、各个子系统数据存储统一存储到通过一个 mysql 数据库众

4. 详细设计
4.1 核心功能
4.1.1 用户登录流程
4.1.2 学生信息维护流程
4.1.3 课程信息维护流程
4.1.4 考试信息维护流程
4.2 关键设计
1、系统数据通过 mysql 主从同步方式备份。
2、前后端数据交互通过 restful 形式的接口交互。
4.3 设计规范
1、系统使用 springboot+mybatis 开发
2、MySQL 使用 Innodb 存储引擎
3、接口采用 RESTFUL 形式,接口命名采用驼峰格式。
5. 质量设计
5.1.1 可测试性
功能集成测试,并发测试超过 200 即可。
5.1.2 可维护性
系统架构简单,易于维护
5.1.3 可观测性
为了便于观察系统运行情况,可在后台使用 jvm 监控命令查看系统运行情况,或者根据系统调用日志查看。
5.1.4 成本
开发成本:50 万以内
服务器:
nginx: 2 台 4 核 4G xxx 元
mysql: 2 台 4 核 8G xxx 元
业务服务器:一台 8 核 16G xxx 元
6. 演进规划
6.1 学生管理系统一期
学生信息管理开发完成,并测试完成
6.2 学生管理系统二期
课程信息管理开发完成,并测试完成
6.3 学生管理系统三期
考试信息管理开发完成,并测试完成
6.4 学生管理系统四期
系统上线
评论