写点什么

模块三:学生管理系统详细架构设计

作者:刘璐
  • 2022 年 2 月 24 日
  • 本文字数:1075 字

    阅读完需:约 4 分钟

模块三:学生管理系统详细架构设计

前言

本文是《学生管理系统》详细架构设计文档,用于知道后续的开发、测试与云纹

词汇表

1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。亟需解决以下问题:

(1)效率问题:花费大量的教师资源,重复处理数据。业务发快速的科学性的统计以及快速查询。

(2)新高考:随着新高考的落地,需要落地走班排课,选课等各种问题。

(3)考试成绩:家长无法方便快捷查询考试成绩

(4)数据分析与挖掘:没有对试卷及相应知识点做数据挖掘与分析

2. 约束和限制

(1)项目需要再 2022 年 5 月 31 日完成

(2)总体成本不超过 100 万

(3)数据库使用 mysql,需要兼容达梦或瀚高等国产数据库。在开发中只能使用标准的 SQL 语句。

(4)jdk 版本采用 java17

(5)保证数据安全性,不能有大规模数据丢失。

(6)系统部署在教育网内,原则上与互联网不互通。

(7)符合等保二级的要求

3. 总体架构


3.1 架构分析

[可选,这部分主要是架构复杂度的分析,基本上从备选架构文档中提炼关键内容过来即可]

[样例:

3.1.1 高可用

对于微博子系统来说,如果消息丢了,导致没有审核,然后触犯了国家法律法规,则是非常严重的事情;对于等级子系统来说,如果用户达到相应等级后,系统没有给他奖品和专属服务,则 VIP 用户会很不满意,导致用户流失从而损失收入,虽然也比较关键,但没有审核子系统丢消息那么严重。

 

综合来看,消息队列需要高可用性,包括消息写入、消息存储、消息读取都需要保证高可用性。

]

[技巧:常见的复杂度都要覆盖到,即使分析后不涉及也要描述,避免评审的时候被人认为遗漏了关键点]

3.1.1 高可靠

保证学生数据、选课数据、考试数据以及其他多媒体文件的存储安全

3.1.2 性能

保证选课、查成绩是下的性能即可,保证 2000qps,1000tps。

3.1.3 可扩展

1.数据库:考虑数据库的国产化。

2.业务各自独立部署。

3.2 总体架构

(1)Nginx:做反向代理与负载均衡

(2)每个分组包含一台主 MySQL 和一台备 MySQL,分组内主备数据复制,分组间数据不同步。

(3)正常情况下,分组内的主服务器对外提供消息写入和消息读取服务,备服务器不对外提供服务;主服务 (4)器宕机的情况下,备服务器对外提供消息读取的服务。

4. 详细设计

4.1 学生新增

4.2 课程设置


4.2 关键设计

1.存储:MySQL 主备设计,并定时备份。

2.接口:包拯幂等。

4.3 设计规范

1.项目使用 SpringBoot 开发

2.数据库只允许使用标准 SQL

3.通讯使用 JSON 格式

4.内部调用使用 RPC 框架

5.MySQL 使用 Innodb

6.所有项目使用开源框架

5. 质量设计

5.1 运维

1.服务器状态监控

2.接口运行状态监控

3.日志完善

5.2 成本

服务器控制在 6 台

5.3 可测试性

单元测试覆盖

6. 演进规划

6.1 功能

1.加入生涯规划

2.加入考试服务

6.2 数据库

适配达梦国产数据库

用户头像

刘璐

关注

还未添加个人签名 2018.03.29 加入

还未添加个人简介

评论

发布
暂无评论
模块三:学生管理系统详细架构设计