写点什么

模块三作业

作者:浮生若梦
  • 2021 年 12 月 26 日
  • 本文字数:868 字

    阅读完需:约 3 分钟

前言

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


1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题。


开发学生管理系统系通过统规范化地管理、科学性统计和快速查询、修改、增加、删除等手段解决学生信息管理数据信息量大修改不方便、对一系列数据进行分析时花费时间长等问题,从而提高信息的准确度以及日常管理的工作效率。


2. 约束和限制

1.   独立部署。

2.   成本不能超过 50 万。


3. 总体架构

3.1 架构分析


  • 高性能:系统没有高并发场景,无高性能要求。

  • 高可用:服务高可用要求不高,但是要保证数据的高可用。

  • 可扩展:可扩展必须考虑。

  • 成本:成本不会很高,可不考虑。

  • 安全:安全要求不高。

  • 其它:无。


3.2 总体架构

1.   系统分为课程子系统、权限子系统、学生子系统。

2.   采用 Spring Could Alibaba 作为基础框架。

3.   采用 Mysql 作为数据库。

4.   采用 Nginx 作为负载均衡器。



4. 详细设计

4.1 核心功能

权限管理

采用基于资源的访问控制(Resource-Based Access Control)模型。权限子系统实现 OAuth 2.0 授权机制,负责整个系统的认证授权。

数据高可用

两台 MySQL 组成主备,异步复制。

4.2 关键设计

业务可扩展

整体系统拆分为三个子系统,把易变的学生管理和课程管理拆分为单独的服务,更容易应对业务的变化,扩展性更好。而权限部分相对稳定,拆分为单独的服务,当其它系统修改的时候权限部分都不受影响。

数据高可用

MySQL 采用主备架构,实现简单。数据采用异步复制的方式,保证主库的写入高性能。主库故障后手动切换。系统宕机时间不是特别敏感,优先保证简单性忽略较高的 RTO。


4.3 设计规范

  • 使用 SpringBoot 2.5.0 作为基础框架,Mybatis 3.3.1 做数据持久化映射。

  • 使用 Spring Security 5.0 安全框架实现 Oauth2.0 认证授权。

  • 子系统通过 Rest API 进行通信。

  • 使用 MySQL 5.7 社区版,InnoDB 引擎。

5. 质量设计


6. 演进规划

无演进规划,一次性交付

用户头像

浮生若梦

关注

还未添加个人签名 2019.03.11 加入

还未添加个人简介

评论

发布
暂无评论
模块三作业