模块三 - 架构文档
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
2. 约束和限制
1、数据库使用 mysql
2、用 java 语言开发
3. 总体架构

3.1 架构分析分析
1、系统高可用
数据库采用主备结构,数据不易丢失,当主库宕机时,可立即切换到备库
2、系统高性能
使用 nginx 进行负载均衡,对外统一暴露系统服务
3、系统可扩展
系统各个业务已进行拆分,新增业务,增加子系统即可,不会对原有业务子系统造成影响
3.2 总体架构
1、使用 nginx 进行负载均衡,对外统一暴露服务,通过 nginx 跳转到指定的子系统
2、总个系统拆分成学生子系统,课程子系统,权限子系统。
学生子系统负责处理学生相关业务
课程子系统负责处理课程相关业务
权限子系统负责处理权限相关业务
3、数据库采用主备结构,正常情况下使用主库,主库宕机的时候可以迅速切换到备库来提供服务
4. 详细设计
4.1 核心功能
1、学生子系统:注册,信息查询,账号管理。
2、课程子系统:课程信息管理,选课。
3、权限子系统:账号角色管理,权限分配,账号信息管理
4.2 关键设计
1、数据安全性:数据存储采用主备结构,数据不易丢失
2、系统高可用:主数据库宕机时,可以立即切换到备库
3、系统扩展性:系统已拆分为多个子系统,新增业务增加子系统即可,不影响原来的业务
4.3 设计规范
1、前后端分离,使用 json 格式进行通信
2、采用 spring boot 框架进行开发
3、mysql 使用 inndb 引擎
5. 质量设计
1、可测试性:系统各个模块功能的性能必须可测试
2、可维护性:可通过系统的日志,来定位,修复系统问题,使用脚本文件来快速启动,部署
3、可观测性:可通过常用的监测指标来观测系统的内部运行情况
6. 演进规划
学生管理系统功能简单,不会有太大的变更,可以一次交付即可,不需要进行太多的系统演进
评论