写点什么

架构训练营第 1 期 模块三作业

用户头像
高远
关注
发布于: 刚刚

写出外包学生管理系统的架构文档

【作业要求】

1. 基于模块 1 第 5 课 P15 页的外包学生管理系统备选架构 1(见下 1 页),写出完整的架构设计文档;2. 注意不是备选架构文档,而是最终落地的详细架构设计文档;3. 无需考虑数据库表设计,因为表设计是方案设计阶段做的,不是架构设计阶段做的;

【提示】

  1. 架构设计文档是完整的文档(Word 或者语雀文档之类的都可以),而不是 PPT;

  2. 架构文档涵盖的内容请参考模块 3 第 4 课,细化架构设计参考模块 3 第 6 课;

  3. 外包学生管理系统的业务请参考模块 1 第 5 课的课件;

  4. 架构文档模板可以参考:架构实战营详细架构设计文档模板

前言

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

1. 业务背景

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

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

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

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

2. 约束和限制

  1. 必须在 2021 年 12 月 31 日前完成项目交付

  2. 开发预算不得超过 50 万

  3. 硬件成本不得超过 5 万/月

  4. 必须使用 Java 作为编程语言(校方后期维护人员只懂 Java)

3. 总体架构

3.1 架构分析

3.1.1 高性能

学校师生人数总计约 5 万人,性能要求并不高。

3.1.2 高可用

学校的主要业务如教学并不依赖此系统,故计算的可用性要求亦并不高。不过需要注意的是数据的可用性有一定要求,因丢失数据需要大量时间来进行人工补录,若出现数据丢失需确保丢失量可控且相对较小。

3.1.3 可扩展

该系统的功能需求比较复杂,可扩展是一个需要重视的复杂度

3.1.4 成本与安全

本系统为单校系统,不涉及金融,且学生信息多为已公开信息,故成本与安全要求不高。

3.2 总体架构设计

系统架构图
  • Nginx 承接请求并分发至相应的子系统

  • 每个子系统独立部署于不同的服务器

  • 所有的子系统的数据库读写操作均指向主 MySQL

  • MySQL 开启实时备份

4. 详细设计

4.1 核心功能

  • 数据的增删改查

  • 用户登陆时将通过学生子系统获得 Token 用以鉴权,之后的所有请求将携带此 Token

  • 当请求设计到对于某一项数据的增删改查时,Token 将被用于向权限子系统进行鉴权来判断是否可以进行此项操作

  • 当数据被增删改之后,主 MySQL 将同步变动至备 MySQL

  • 统计数据的生成

  • 每个子系统都有自己的定时任务 CronJob 定期计算并更新统计数据以供有权限的用户查阅。

4.2 关键设计

  • 数据储存的可靠性

  • 使用一主一备两台 MySQL 服务器,将数据变动从主 MySQL 及时备份到备 MySQL 可以保证当主 MySQL 意外发生时丢失的数据仅限于主备间复制延迟过程中产生的变动。

  • 请求流量的分发与控制

  • Nginx 根据 URL 来决定将请求反向代理至某个子系统

  • 后期当某个子系统有多台主机时 Nginx 可以做负载均衡

  • 当某个子系统出现过载等故障时 Nginx 可以短路来实现服务降级

4.3 设计规范

  1. 子系统使用 Spring Boot 开发

  2. MySQL 使用 InnoDB 储存引擎

  3. 各个子系统之间的调用使用 HTTPS 协议以及基于 JSON 的 API 并同样经过 Nginx 调度

5. 质量设计

  1. 使用框架自带的 Spring Boot Actuator 来实现可测试性、可维护性及可观测性

6. 演进规划

6.1 学生管理系统一期

  • 完成学生子系统,实现学生管理功能

  • 完成权限子系统,实现权限管理功能

6.2 学生管理系统二期

  • 完成课程子系统,实现课程管理和考试管理功能

  • 完成观测监控模块的搭建

发布于: 刚刚阅读数: 2
用户头像

高远

关注

还未添加个人签名 2017.11.24 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营第 1 期 模块三作业