外包学生管理系统详细架构设计
前言
本文是外包学生管理系统详细架构设计,用于指导学生管理系统后续的开发、测试和运维。
词汇表
nginx:负载均衡服务器
mysql:关系型数据库
1. 业务背景
随着学校规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 约束和限制
成本尽量压缩
学校没有运维人员,要求运维成本低
3. 总体架构
3.1 架构分析
3.1.1 高可用
对于学生管理系统来说,学生的数据非常重要,可以容忍丢失个别的数据,但是学生管理系统整体的数据不允许全部丢失,会给学校管理带来灾难性的严重问题。
3.1.2 高性能
学校学生一共 3-5w 人,相对比较稳定。并且可以分级选课,所以不需要设计非常高的性能
3.1.3 高可扩展
外包学生管理系统属于一次性项目,并且业务相对比较稳定,考虑到后期可能会有一些其它的业务接入学生管理系统,所以需要有一定的可扩展性。
3.2 总体架构
1)系统包含一台主 MYSQL 和一台备 MYSQL,主备数据通过 binlog 同步。
2)使用 nginx 做代理服务器,将学生的请求分发到不同的业务子系统。
3)正常情况下,对数据库的所有操作都打到主数据库上,主数据库不可用的情况下,备数据库对外提供读写的功能。
4. 详细设计
4.1 核心功能
学生管理设计
1)管理员管理教师和辅导员
2)辅导员登录系统可以审批学生,教师可以修改学生成绩,可以设置学生的奖惩信息。
3)学生通过手机号注册账号,登录系统可以进行选课,查看自己的成绩,上传自己的作业
学生选课设计
教师上传课程列表后,学生登录教务系统进行选课。
权限校验设计
每个角色登录后可访问的页面权限是不一样的。
4.2 关键设计
4.3 设计规范
1)开发语言使用 java,使用 spring boot 2.x 版本
2)mysql 使用 Innodb 存储引擎
3)前后端交互使用 json 序列号
4)服务间调用使用 feign 调用
5. 质量设计
5.1 学生管理平台
评论