写点什么

外包学生管理系统架构

作者:浪飞
  • 2022 年 2 月 24 日
  • 本文字数:697 字

    阅读完需:约 2 分钟

1. 业务背景

随着学校的发展和信息化建设的工作展开,学校需要建设一个学生管理平台,让教职工能更快、更好的管理学生信息,也能让学生更好的查询自己的相关信息。

该平台需要具备如下基本功能:

  • 学生信息管理

  • 学生的课程管理

2. 约束和限制

  • 平台必须在 9 月 1 日开学前正式上线,并实现先有数据迁移到平台中。

  • 必须采用云服务器,保证服务的高可用。

  • 平台必须支持 3w 师生同时在线。

  • 每年的运维成本不能高于 20w

3. 总体架构

3.1 架构分析

  • 高性能:师生数量为 3w 左右,总体性能压力不大。

  • 高可用:学生管理系统宕机小段时间对学校的运营、管理影响不大,但是必须保证数据不可丢失,针对抢课、考试这类特殊场景需要保证服务不崩溃。

  • 可扩展:后期可能涉及一些学生成绩、课程相关的分析功能模块。

3.2 总体架构

  • 整个平台拆分为五大模块:网关层 nginx、学生子系统、课程子系统、账户权限子系统和数据库存储。

  • 数据库采用主从配置,保证数据的高可用。

4. 详细设计

4.1 核心功能

  • 学生管理

  • 课程管理


4.2 关键设计

  • 所有的请求首先经过 nginx 网关,先从权限子系统获取当前用户有没有资源的访问权限,没有访问权限则返回,有返回权限才转发到相应的子系统中。

  • 数据库主从同步时须采用同步操作。

4.3 设计规范

  • MySQL 必须使用 Innodb 存储引擎。

  • 接口规范遵循 restful。

  • 所有接口操作必须实现幂等。

5. 质量设计

  • 可测试性:

  • 每个子系统内部使用单元测试+mock 进行测试。

  • 子系统对外提供的功能,通过 http 接口工具进行测试。

  • 可维护性:子系统的维护通过配置文件进行管理。

  • 可观测性:使用云服务器厂商提供的控制台对系统进行监控。

6. 演进规划

第一期:实现学生信息管理、权限管理和课程基本管理功能。

第二期:实现考试、成绩统计分析功能。

用户头像

浪飞

关注

还未添加个人签名 2019.02.12 加入

还未添加个人简介

评论

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