外包学生管理系统架构文档
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,
处理效率也十分低下。
为解决学生管理问题,同时尽可能降低管理成本,从学校管理现状出发,从而开发设计学生信息管理系统。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其
主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等
功能设计的管理系统。
2. 约束和限制
1、成本尽可能低
2、暂无数据库要求
3. 总体架构
学生管理系统的总体架构如下
3.1 架构分析
3.1.1 高可用
学生管理系统数据最为重要,所以针对数据库做了主备模式,一方面是做容灾处理,另一方面也可演进为读写分离的模式,增强系统的整体性能
3.1.2 微服务
避免模块的故障导致其他正常功能不可用,起到一定的隔离作用
3.2 总体架构
1)系统采用微服务架构方案,按功能将系统拆分为不同的子系统,同时部署在不同的服务器上,避免模块的故障导致其他正常功能干扰,起到一定的隔离作用
2)系统包含一台主 MySQL 和一台备 MySQL,主备之间进行数据复制。
4)器宕机的情况下,备数据库服务器对外提供服务。
5)nginx 提供不同的路由对外提供服务。
4. 详细设计
4.1 核心功能
4.1.1 权限子系统
提供鉴权功能,使用 RBAC 模式设计权限系统
4.1.2 学生子系统
提供学生信息增删改查功能,但是所有请求都会经过权限系统来判断是否有访问权限
4.1.3 课程子系统
提供给学生选课,老师开课,结课打分等主要功能
4.2 关键设计
4.2.1 请求入口为统一的 nginx 网关,各个子系统以不同路由为入口;
4.2.2 数据库为主备设计
4.3 设计规范
1)学生管理系统使用 Spring Boot 开发,为 B/S 模式
2)MySQL 使用 Innodb 存储引擎
3)子系统之间的调用使用 RPC
4)对外接口满足 rest 风格
5. 质量设计
可测试性:完成并提供各个接口的测试方案及用力
可维护性:各个模块的详细设计文档
可观测性:提供服务及服务器的监控
6. 演进规划
6.1 一期:
完成学生管理系统的服务基本功能
6.2 二期
提供服务以及服务器的可观测性的方案
版权声明: 本文为 InfoQ 作者【zjluoyue】的原创文章。
原文链接:【http://xie.infoq.cn/article/8dc37eb1d22ad8765a827edda】。未经作者许可,禁止转载。
评论