阶段三作业
前言
本文是学生管理系统详细架构设计文档,用于指导后续的开发、测试和运维
修订历史
初始版
词汇表
略
1. 业务背景
极客时间培训学校的现在采用手工管理学生信息方式。随着极客时间培训学校的业务的不断发展,学生人数越来越多,手工管理业务存在几个明显的问题:
·
工作效率问题:具体略
·
数据安全问题:具体略
·
信息准确问题:具体略
·
基于以上背景,我们需要引入极客时间培训管理系统取代现在手工管理以解决上述问题,提高工作效率,保证数据安全,增强数据准确,实现管理信息化。
2. 约束和限制
1.必须在 2022.12.30 号完成
2.成本不能超过 80 万
3.数据库采用 mysql
4 系统安全可靠稳定
3. 总体架构
3.1 架构分析
由于系统管理数据量有限,系统用户有限,开发成本有限,系统应采用简单稳定可靠安全架构。
3.2 总体架构
1)系统采用 nginx 做路由
2)业务逻辑包括学生,课程和权限三个子系统。
3)数据存储采用主备方案,包含一台主 MySQL 和一台备 MySQL,主备数据复制
4)正常情况下,主服务器对外提供数据写入和数据读取服务,备服务器不对外提供服务;
5)主服务器宕机的情况下,备服务器对外提供读取数据的服务。
4. 详细设计
4.1 核心功能
4.1.1 客户端 Role 设计
客户端采用 VUE 框架
4.1.2 客户端与服务端 Relation 设计
客户端与服务端采用 restful 风格通信
客户端与服务端通过 nginx 通信
4.2.1 服务端 Role 设计
服务端采用 springboot 开发
服务端包括学生,课程,权限三个子工程和一个用于聚合的父工程
系统管理员在权限系统为用户分配操作权限
教师在课程系统设置课程
学生登录学生子系统查看课程
4.2.2 服务端与数据端 Relation 设计
服务端与数据库通过 shardingJDBC 与数据库相连。
ShardingSphere-JDBC 采用无中心化架构,适用于 Java 开发的高性能的轻量级 OLTP(连接事务处理) 应用;
ShardingSphere-Proxy 提供静态入口以及异构语言的支持,适用于 OLAP(连接数据分析) 应用以及对分片数据库进行管理和运维的场景。
4.3.1 数据端 Role 和 Relation 设计
数据端采用 mysql 主从同步
4.2 关键设计
系统为实现稳定,数据库采用主从同步。需要在服务端使用 shardingjdbc 中间件。.
复制原理
主要配置
4.3 设计规范
1)服务器使用 Spring Boot 开发
2)MySQL 使用 Innodb 存储引擎
3)客户端与服务端采用 restful 风格通信
5. 质量设计
5.1 系统提供主要脚本用于启动、停止程序及运行状态监控
5.2 系统提供启动及运行日志用于问题定位
6. 演进规划
6.1 系统权限一期
6.2 课程管理二期
6.3 学生管理三期
评论