架构实战营 - 模块三作业: 架构文档
前言
本文為學生管理系統詳細架構設計文檔, 用于系統後續的開發測試和運維
词汇表
MySQL: (略)
Nginx
Spring boot
MVC
RBAC
1. 业务背景
学校规模不断扩大,学生数量增加, 带来明显的管理问题, 目前人工学生管理效率低下仅花费大量的教师资源, 处理效率十分低下, 基於以上問題, 需要引入學生管理系統, 本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化, 目標為提高学生管理的管理水平,优化资源,降低管理成本
2. 约束和限制
必须在 2021.12.30 前完成
成本不能超过 100 万
相容于目前纸本资料作业程序
可以应对 3000 人的管理资料
学生与老师不同权限
使用 java 与主流框架开發
3. 总体架构
3.1 架构分析
3.1.1 高可用
数据高可用:数据不要全部丢失, 採用 MySQL 主从架构
3.1.2 高性能
使用者估计 3000 人, peak qps 不超过 1000, 採用 MySQL 即可
3.1.3 可擴展
暫無需求, 可增加子模块应对
3.2 总体架构
4. 详细设计
4.1 核心功能
学生管理
课程管理(考试管理併入)
权限管理: 使用 RBAC 設計
4.2 关键设计
資料存储可靠性
消息存储在 MySQL 中,有一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证存储高可用。
4.3 设计规范
Spring Boot + Netty 开发
MVC Web
MySQL 使用 Innodb 存储引擎
传递数据采用 Restful API + JSON
5. 质量设计
5.1 後台
一期结束前确认需求
5.2 成本
服务器 x
DB x 2
开發人力
6. 演进规划
6.1 一期
权限管理
学生管理(文件上传/下载除外)
课程管理
6.2 二期
考試管理
学生管理(文件上传/下载)
管理後台
评论