架构训练营作业三-外包学生管理系统的架构文档

1. 业务背景

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

处理效率也十分低下。

为解决学生管理问题,同时尽可能降低管理成本,从学校管理现状出发,从而开发设计学生信息管理系统。

本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其

主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等

功能设计的管理系统。

2. 约束和限制

1、成本尽可能低
2、暂无数据库要求
3、总体架构

学生管理系统的总体架构如下
在这里插入图片描述
架构训练营作业三-外包学生管理系统的架构文档_第1张图片

3.1 架构分析

3.1.1 高可用

学生管理系统数据最为重要,所以针对数据库做了主备模式,一方面是做容灾处理,另一方面也可演进为读写分离的模式,增强系统的整体性能

3.1.2 微服务

避免模块的故障导致其他正常功能不可用,起到一定的隔离作用
3.2 总体架构

1)系统采用微服务架构方案,按功能将系统拆分为不同的子系统,同时部署在不同的服务器上,避免模块的故障导致其他正常功能干扰,起到一定的隔离作用

2)系统包含一台主 MySQL 和一台备 MySQL,主备之间进行数据复制。

4)器宕机的情况下,备数据库服务器对外提供服务。

5)nginx 提供不同的路由对外提供服务。

4. 详细设计

4.1 核心功能

4.1.1 权限子系统

提供鉴权功能,使用 RBAC 模式设计权限系统

4.1.2 学生子系统

提供学生信息增删改查功能,但是所有请求都会经过权限系统来判断是否有访问权限

4.1.3 课程子系统

提供给学生选课,老师开课,结课打分等主要功能
4.2 关键设计

4.2.1 请求入口为统一的 nginx 网关,各个子系统以不同路由为入口;

4.2.2 数据库为主备设计
4.3 设计规范

1)学生管理系统使用 Spring Boot 开发,为 B/S 模式

2)MySQL 使用 Innodb 存储引擎

3)子系统之间的调用使用 RPC

4)对外接口满足 rest 风格

5. 质量设计

可测试性:完成并提供各个接口的测试方案及用力

可维护性:各个模块的详细设计文档

可观测性:提供服务及服务器的监控

6. 演进规划

6.1 一期:

完成学生管理系统的服务基本功能

6.2 二期

提供服务以及服务器的可观测性的方案

你可能感兴趣的:(架构训练营,架构)