外包学生管理系统架构设计文档
前言
本文档为外包管理系统的详细架构设计文档。
词汇表
nginx: http 服务器以及高性能负载均衡器
mysql: 关系数据库管理系统
1、业务背景
随着学校规模扩大,学生数量增加,为了提高学校的信息化水平以及管理效率,亟待开发一套系统来解决当前管理效率低下的问题。
2、约束与限制
1、交付周期: 3 个月
2、成本预算: 30w
3、性能要求:1000 学生并发访问
3、总体架构
3.1 架构分析
3.1.1 高性能
并发访问 1000,对性能要求不高
3.1.2 高可用
学校的核心信息并不依赖这套管理系统,但是若数据大量丢失需要花费时间补录,因此需要保证一定的数据可用性
3.1.3 可扩展
通过拆分服务提高系统的可扩展性
3.1.4 成本、安全
成本 30w,因为并无隐私数据,安全只是满足常规的安全选项,并不需要特别考虑
3.2 总体架构

4、详细设计
4.1 核心功能
1、权限管理
用户在登录时,首先像权限子系统请求 token,token 中包含用户各种资源的访问权限,当用户请求相应的资源时,会向权限系统请求校验 token 的合法性
2、学生选课
学生向权限系统请求选课授权,得到授权后,请求可选课程列表,选课,保持到数据库
4.2 关键设计
1、数据存储高可用
数据存储在 mysql 中,采用一主一备
2、业务拆分
业务拆分为 3 个子系统,方便各个系统的动态增减
3、反向代理
利用 nginx 的反向代理,实现请求的自动转发
4.3 设计规范
1、Mysql 使用 InnoDB 存储引擎,采用主备设计
2、系统内部使用 rpc 通讯
3、外部统一使用 restful 风格 api
5、质量设计
可测试性: 提供各个模块的接口协议文档
可维护性:各个模块的详细设计文档
可观测性:提供运维管理系统
成本:30W 以内
6.演进规范
6.1 一期
交付各个功能子系统,可以提供老师,学生选课
6.2 二期
交付后台运维系统,提供多维度指标检测,以及日志审计
评论