写点什么

架构实战营模块三作业

作者:null
  • 2023-03-07
    北京
  • 本文字数:1836 字

    阅读完需:约 6 分钟

1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。


为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。


本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统

系统边界黑盒图


2. 约束和限制

1.项目开发时间为 2023 年 3 月 7 日至 2023 年 6 月 7 日

2.项目成本为 10 万以内

3.项目质量符合三级等保要求

4.全校师生规模为 2 万人左右,其中教师 200 人左右,学生 2 万人左右

3. 总体架构

3.1 架构分析


3.1.1 高性能

学生网上成绩查询,大约在出成绩的当天会有 80%的学生进行查询,查询时间集中在当天早上 9 点至下午 6 点,预估 TPS 为 2 万人*0.8/9 小时*10=5TPS

3.1.2 高可用

系统对高可用要求不高,系统宕机在 1 小时之内恢复

系统数据要保证不全部丢失,需要做数据备份

3.1.3 可扩展

业务需求比较复杂

3.1.4 成本和安全

开发预算为 10 万,开发周期要求 3 个月,系统要保证不出现安全漏洞

3.2 总体架构


3.2.1 学生管理

  1. 账号绑定:学生账号可通过第三方如:手机号码、微信等自行绑定,可实现账号自助找回等。

  2. 组织管理层级:按学生实际情况划分归属。 例如:软件学院—数字传媒方向(专业)—软件 1306—苗雨乔。

  3. 文件上传/下载:此功能针对所有用户开放,学生可以将自己课堂笔记、日常作业等相关信息在线传输,教师通过学生上传的相关作业、试卷信息进行相应评定,完成对学生平时成绩的评定。此功能一旦评定结束,所有用户只有查询、浏览的权限,除管理员外其他用户没有对成绩修改的权限。

  4. 信息查询:此项功能包含课程查询(含课程体系、课时安排、课表、教师、教材等)、成绩查询、文件查询。


3.2.2 课程管理

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

  2. 选课功能:学生可以在线对自己的课程体系进行选择,相对应的课程选择功能类比。

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

  4. 教材选择:此功能由教务统一管理,根据每门课程选定相应教材

  5. 考试管理功能,教师可上传考试题,由系统自动生成试卷,试卷提供排版打印功能

3.2.4 权限管理

  1. 系统使用者有学生、教师、管理员、辅导员。

  2. 学生、教师、辅导员可以注册、登录、修改自己的信息,但注册信息需要管理员审核通过。

  3. 学生只能查看自己的成绩,教师可以修改学生的成绩。

  4. 辅导员可以查看学生的信息,可以设置学生的奖惩信息。

  5. 教师可以上传考试试题,学生可以做题。

4. 详细设计

4.1 核心功能

学生查询成绩时序图


学生选课时序图


4.2 关键设计

4.2.1Nginx 转发规则

学生系统 api 通过/student 前缀进行转发

课程管理系统通过/manager 前缀进行转发

权限管理系统通过/console 前缀进行转发

4.2.2 消息存储可靠性

消息存储在 MySQL 中,每个分组有一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证消息存储高可用。如果主备间出现复制延迟,恰好此时 MySQL 主服务器宕机导致数据无法恢复,则部分消息会永久丢失,这种情况不做针对性设计,DBA 需要对主备间的复制延迟进行监控,当复制延迟超过 30 秒的时候需要及时告警并进行处理。

4.2.2 学生选课功能

保证每节课不会被超选,在课程表中加入选课人数,乐观锁字段,在选课时先进行查询,发现超出选课人数返回选课人数已满,请选择其他课程。更新选课人数失败返回选课错误,请稍后重试

管理端提供选课列表界面,提供人为手动修改选课人员功能。

4.3 设计规范

项目使用 springboot+mybatis+VUE 进行开发

前后端数据传输使用 JSON 格式

各服务之间使用 dubbo 进行接口调用

学生管理系统与课程管理系统使用 cas 模式实现单点登录,权限管理系统作为 cas-server 端提供统一登录页面

数据库使用 mysql,使用主备架构,备机为数据备份

5. 质量设计

可测试性

1.架构可测试性:支持人为切换数据库主备

2.应用可测试性:支持验证测试学生管理、课程管理、权限管理等。

可维护性

增加学生系统运维管理系统,用于对系统的运维

可观测性

提供慢 sql 监控,接口访问超时监控,业务访问量监控,服务器 CPU、内存、磁盘占用率监控

用户头像

null

关注

还未添加个人签名 2018-07-31 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块三作业_null_InfoQ写作社区