写点什么

架构实战训练营模块三

作者:人生就是梦
  • 2021 年 11 月 14 日
  • 本文字数:1344 字

    阅读完需:约 4 分钟

前言

本文是外包学生管理系统的详细架构设计文档,用于指导消息队列后续开发、测试和运维 

词汇表

1. 业务背景

随着学校的规模不断扩大,学生数量的增加,需要处理的信息也日趋增大。需要有一款管理系统,统一管理学生信息,用来提高学生管理水平,降低人员管理成本。

学生管理系统是从学生管理现状除非,根据学生管理的要求进行开发设计的,它需要解决学生信息管理信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效学生信息。

本系统最终主要应用于学校学生信息管理,主要实现学生信息关系的系统化、规范化、自动化,主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。

 

2. 约束和限制

3. 总体架构

3.1 架构分析

3.1.1 数据高可用

对于学生管理系统学生数据在机房出故障、或者磁盘损坏情况,数据不能够全部丢失,允许部分数据丢失。如果数据全部丢失会导致整个学校运转出故障,

后期学校需要花费大量人力物力对数据进行修复。

3.1.2 业务可扩展

学生管理系统当前业务需求就比较复杂,随着管理系统的功能丰富,学校从人工管理逐渐过渡到管理系统管理,必然涉及到更复杂的功能。所以在项目前期需要考虑业务上的可扩展性。

3.2 总体架构

3.2.1 系统架构图


采用 nginx 做请求转发,根据业务功能,拆分成学生子系统、权限子系统、课程子系统。拆分多个子系统后,后期容易扩展。数据高可用采用 MySQL 主备方式,存在一定的数据延迟,但总体上满足业务需求以及数据可靠性

3.2.1.1 学生子系统

学生基本信息:

根据学生实际情况划分学院,分类管理。

3.2.1.2 权限子系统

账号登录:

学生、教师账号登录校验,账号基本信息管理

 

账号分配:

学生账号系统生成,给定相应权限,可以进行密码更改。教师账号由管理者(教务)通过系统生成。

 

权限控制:

学生、教师登录后页面访问权限控制,教师有对学生成绩和试卷评定的权限。

3.2.1.3 课程子系统

课程录入:

由管理员对相应课程体系进行录入、供学生、教师进行在线选择。

选课功能:

学生可以在线对自己的课程体系进行选择。

排课功能:

根据学生选定的课程和教学体系安排,对应教师、教室、时间进行统一规划安排。

课程查询:

课程体系、课程安排、课表、教师、教材查询。

成绩查询:

学生可以查询考试成绩。

 

4. 详细设计

[必选,描述核心场景或者流程的实现机制]

4.1 核心功能

4.1.1 账号登录


教师录入学生基本信息后,学生的初始账号和密码由系统默认生成,学生可以通过默认的账号密码登录系统,登录系统后可以自己修改账号密码。

4.1.2 权限控制


权限管理系统主要管理学生、教师拥有的权限,在学生和教师访问不同资源时,判断当前用户是否有此权限。

4.2 关键设计

4.2.1 数据库存储可靠性

数据存放在 MySQL 中,2 台机器一主一备,数据全部写入主,备节点做数据同步备份,备节点上需要有监控进程监控数据同步是否正常。如果同步不正常需要进行告警通知。

4.2.2 性能问题

抢课系统会出现一点的性能问题,在设计阶段需要控制针对,短期抢课出现的一些流量峰值情况。

4.3 设计规范

1.子系统对外暴露接口使用 HTTP 协议,内部服务交互使用 RPC 通信。

2.所有外部接口参数需要进行严格校验,入库密码,手机号需要进行加密处理。

3.MySQL 采用 Innodb 存储引擎,需要做主备结构。

4.代码异常情况需要捕获异常,打印相关日志,需要具备可调试性。

 

5. 质量设计

6. 演进规划

 

用户头像

还未添加个人签名 2021.02.28 加入

还未添加个人简介

评论

发布
暂无评论
架构实战训练营模块三