模块三作业
前言
本文是外包学生管理系统详细架构设计文档,用于指导外包学生管理系统后续的开发、测试、运维。
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题。
开发学生管理系统系通过统规范化地管理、科学性统计和快速查询、修改、增加、删除等手段解决学生信息管理数据信息量大修改不方便、对一系列数据进行分析时花费时间长等问题,从而提高信息的准确度以及日常管理的工作效率。
2. 约束和限制
1. 独立部署。
2. 成本不能超过 50 万。
3. 总体架构
3.1 架构分析
高性能:系统没有高并发场景,无高性能要求。
高可用:服务高可用要求不高,但是要保证数据的高可用。
可扩展:可扩展必须考虑。
成本:成本不会很高,可不考虑。
安全:安全要求不高。
其它:无。
3.2 总体架构
1. 系统分为课程子系统、权限子系统、学生子系统。
2. 采用 Spring Could Alibaba 作为基础框架。
3. 采用 Mysql 作为数据库。
4. 采用 Nginx 作为负载均衡器。
4. 详细设计
4.1 核心功能
权限管理
采用基于资源的访问控制(Resource-Based Access Control)模型。权限子系统实现 OAuth 2.0 授权机制,负责整个系统的认证授权。
数据高可用
两台 MySQL 组成主备,异步复制。
4.2 关键设计
业务可扩展
整体系统拆分为三个子系统,把易变的学生管理和课程管理拆分为单独的服务,更容易应对业务的变化,扩展性更好。而权限部分相对稳定,拆分为单独的服务,当其它系统修改的时候权限部分都不受影响。
数据高可用
MySQL 采用主备架构,实现简单。数据采用异步复制的方式,保证主库的写入高性能。主库故障后手动切换。系统宕机时间不是特别敏感,优先保证简单性忽略较高的 RTO。
4.3 设计规范
使用 SpringBoot 2.5.0 作为基础框架,Mybatis 3.3.1 做数据持久化映射。
使用 Spring Security 5.0 安全框架实现 Oauth2.0 认证授权。
子系统通过 Rest API 进行通信。
使用 MySQL 5.7 社区版,InnoDB 引擎。
5. 质量设计
无
6. 演进规划
无演进规划,一次性交付
评论