写点什么

外包学生管理系统的架构设计

作者:yhjhero
  • 2022 年 2 月 21 日
  • 本文字数:899 字

    阅读完需:约 3 分钟

前言

本文是学生管理系统架构设计文档,用于指导学生管理系统后续的开发、测试和运维。

1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大,目前的学生信息处理系统存在以下问题:

成本问题:需要花费大量教师资源。

效率问题:学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长。

基于以上背景,我们需要引入学生信息管理系统,可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。

2. 约束和限制

可扩展:业务需求比较复杂

数据高可用:数据不要全部丢失

3. 总体架构

3.1 架构分析

高性能:学校的师生数量一般在 10w 以内,并发访问量不大,因此对性能要求不高。

高可用:学生管理系统是学校管理的一部分,且非主要业务,其崩溃对学校的运营影响不大,但是学生信息一般是集中录入或者学生自己注册,如果数据丢失重新恢复就非常麻烦,因此需要一定的存储高可用。

可扩展:将来会有新的业务接入,因此需要一定的可扩展性。

3.2 总体架构



① 系统分为学生子系统、课程子系统、权限子系统;用户访问学生子系统、课程子系统前,需要经过权限子系统的检查;

② 用 MySQL 存储数据,包含一台主 MySQL 和一台备份 MySQL,主备数据复制;

③ 用 Nginx 作为接入网关。

4. 详细设计

4.1 核心功能

1、用户登录


2、操作学生子系统


3、操作课程子系统


4.2 关键设计

1、数据存储高可用

数据存储在 MySQL 中,采用主备架构,使用 binlog 同步到备库。正常情况下,由主 MySQL 提供服务,主 MySQL 异常时,由备 MySQL 提供服务。

2、可扩展

将业务拆分为 3 个子系统,方便扩展。

3、安全

所有请求经过权限子系统的鉴别,有操作权限时再转发到相应的子系统。

4.3 设计规范

1、MySQL 使用 Innodb 存储引擎。

2、API 采用 Resful 风格。

3、系统间的通讯数据格式采用 json。

 

5. 质量设计

1、可测试性:MySQL 主备可以手动切换。

2、可维护性:可暂停服务进行系统升级、手动切换 MySQL 主备等。

3、可观测性:用户的操作日志、管理平台。

4、成本:控制在 20 万以内。

 

6. 演进规划

学生管理系统一期:实现学生管理系统基本功能。

学生管理系统二期:管理平台,以及根据需求扩展功能,如实现学生数据的分析。

用户头像

yhjhero

关注

还未添加个人签名 2020.09.05 加入

还未添加个人简介

评论

发布
暂无评论
外包学生管理系统的架构设计