写点什么

架构实战营

作者:ren
  • 2021 年 12 月 21 日
  • 本文字数:712 字

    阅读完需:约 2 分钟

前言

用于指导实现外包学生管理系统,以及管理系统的部署,运行,维护

 

词汇表

NGINX:反向代理服务器

MYSQL:关系型数据库,用于存储数据

 

1. 业务背景

随着学校规模扩大,学生数量增加,课程增加,管理成本大幅增加

1. 学生信息管理数据信息统计慢,不方便       

2. 学生选课、成绩查询学生自己去问或者等通知,浪费时间

基于以上原因,需要设计一个学生管理系统,辅助管理,提高管理水平

 

3. 约束和限制

1. 项目期限:2022.01.29

2. 成本不得超过 20 万

3. 支持 5 万个学生和 1000 个学生并发访问

4. 数据库限制 Mysql

5. 数据要有备份,尽量不丢失

 

3. 总体架构


3.1 架构分析

3.1.1 将业务拆分为三个子系统

3.1.2 数据库采用主备架构,避免数据丢失

3.1.3 使用 Nginx 反向代理,方便部署

3.2 总体架构

1. Mysql 数据库主备

2.将业务分为三个子系统,学生子系统是访问频率最高,然后课程子系统大多数时候访问量不大,不过课程选课开启,会有瞬时高访问量。权限控制系统最重要,不能出错。

3.客户端访问时,根据业务分发到不同的子系统处理

4. 详细设计

4.1 核心功能



4.2 关键设计

1. Nginx 网关:使用 nginx 进行反向代理,对以后系统的扩展性,可靠性有了保证

2.使用 MySQL 数据库:学生数据很适合采用关系数据库,而且便宜,采用主备架构,避免数据丢失

3.各个子系统可以有各种不同语言的实现,方便外包

4.3 设计规范

1. MySQL 使用 Innodb

2.接口遵循 restful

5. 质量设计

可测试性:

每个子系统单元测试

子系统对外接口规范,可进行接口测试

可维护性:学生信息系统管理后台

可观测性:云服务器厂商提供

 

6. 演进规划

第一期:实现各个子系统的功能,并且单元测试通过

第二期:系统架设完毕,并且联调通过

第三期:实现运维平台,使学生管理系统可以随时更新

用户头像

ren

关注

还未添加个人签名 2021.07.22 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营