写点什么

架构实战营模块三作业

作者:张贺
  • 2022-12-27
    上海
  • 本文字数:1092 字

    阅读完需:约 4 分钟

前言

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

 

修订历史


1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。

为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。

因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。

本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。

 

2. 约束和限制

 

必须在一个月内完成基本功能开发

数据要保证不能丢失

能够支撑 10000 以下学生和教职工用户使用

 

3. 总体架构

3.1 架构分析

高性能:一个学校几万个学生,对性能要求不高。

高可用:学校的教学等业务并不主要依赖于学生管理系统,即使挂掉也影响不大,但是要保证学生信息不能全部丢失。

可扩展:系统业务比较复杂,可扩展复杂度较高。

成本:面向单个学校,成本不是主要问题。

安全:不涉及到交易,对安全性要求不高。

隐私:不涉及到用户私密信息,对隐私性要求不高。

 

综上,此系统复杂度主要体现在数据高可用和可扩展两个方面。

 

3.2 总体架构


Nginx: 负责学生的请求接入,将请求反向代理到具体提供服务的子系统。

业务子系统主要包括:学生子系统、课程子系统和权限子系统。

数据存储:使用 mysql 主备架构保证数据的高可用。

 

4. 详细设计

4.1 核心功能

4.2 关键设计 

学生子系统包括系统登陆、账号分配、账号绑定、组织管理层、文件上传和信息查询。

课程子系统包括课程录入、选课功能、排课功能和教材选择。

权限管理包括系统使用者的各种权限设定。

4.3 设计规范 

业务子系统使用 spring boot + tomcat 开发

Mysql 数据库使用 Innodb 存储引擎

系统之间的通信采用 https 协议

接口采用 restful 风格

5. 质量设计 

可测试性:各系统可以单独采用接口测试

可维护性:

可观测性:实时监控各服务器进程的运行情况,同时监控数据库中业务数据的相关信息

成本:开发人数控制在 3 人左右,开发周期 1 个月左右,服务器 10 台以内

 

6. 演进规划

一期:完成基本功能的开发,保证业务可以正常使用

二期:完善数据高可用开发,优化代码设计

三期:用户增加遇到性能瓶颈后,可以考虑引入微服务设计

用户头像

张贺

关注

还未添加个人签名 2018-11-03 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块三作业_张贺_InfoQ写作社区