学生管理系统架构设计文档
前言
本文是学生管理系统架构设计文档,用于指导学生管理系统的开发、测试和运维
1、业务背景
随着学校的发展,教师、学生、课程等信息的管理使用传统的表格人工管理的方式,存在效率低、易出错、查询不方便等问题,为了更好的管理这些信息,需要一套完整的在线管理系统对这些信息进行管理以提高管理效率。
2、约束和限制
需要在 6 月底完成并上线
成本控制在 20 万
数据库要求使用 Mysql,开发语言 java 或 go
内网部署
3、总体架构
3.1 架构分析
可用性:保证数据不能丢失
可扩展:后续会有功能迭代,需要具备一定的扩展性
性能:学校人数相对较少(大点的 5w 左右),并发不会太高,性能要求不高
安全:使用 https 协议
3.2 总体架构
1、采用 kratos 服务框架开发,分成学生、课程、权限三个子系统进行独立部署
2、nginx 通过路由规则进行转发
3、mysql 使用主备模式部署,读写都使用主库,备库只做备份
4、详细设计
4.1、核心功能
用户登录
一般操作流程
4.2、关键设计
1、数据可靠性
使用 mysql 主备实现数据可靠性,当主库发送故障磁盘损坏时,可切换到备库继续提供服务,主库修复后作为备库重新上线,从而保证数据不丢失。
2、系统扩展性
系统按模块划分成多个子系统独立部署,方便后续扩展
4.3、设计规范
1、mysql 所有的表必须使用 innodb 引擎和 utf8mb4 编码
2、接口需要符合 RESTful 风格
3、所有的操作必须要有权限控制
4、所有的输入输出字段必须使用蛇形命名
5、质量设计
可测试性:接口通过单元测试,故障可手动停止服务
可维护性:各系统可进行平衡重启在线升级
可观测性:将系统资源及程序运行中的日志进行记录,通过管理平台进行服务监控
6、演进规划
一期:完成基本的功能,如学生信息管理、课程管理、权限管理等
二期:在线考试
三期:社区、其他
评论