架构实战营作业 3
作业要求
前言
编写该文档目的:便于用户,开发人员之间进行理解和交流,可以作为项目开发工作的基础和依据以及确认测试和验收的依据。
最后可为后面必要的系统升级或维护提供一些必要的系统信息;本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的修改,删除等功能,能够快速的查询学生的相关信息。以备后期方案设计筹划作为参考依据。
修订历史
词汇表
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。采用人工管理的方式,会带来以下几个问题:
传统方式不仅花费大量的人力资源,处理效率也十分低下。
随着时间积累,管理信息的成本会越来越大。
旧数据不容易保存,信息容易出现混淆和丢失。
采用信息管理系统能解决以下问题:
解约人力成本。
可以实现学生信息管理系统化,规范化,自动化。
方便统计学生各类信息,例如:选课,成绩查询等等。
2. 约束和限制
开发语言选择 JAVA
成本限制在 100 万以内
开发周期在 2023 年 3 月 10 日完成发布上线
数据库限制使用 MySql
使用 TDD 工作方式,测试驱动开发模式。
客户端操作系统 windows11,服务端 Centos。
3. 总体架构
3.1 架构分析
高可用
由于录入学生信息比较繁琐,加上还需要人工审核。所以对信息高可用要求有一定要求。
信息丢失,也会导致其他业务受到影响。所以设计必须考虑高可用性。数据库使用主从结构。定期自动化备份数据。
高性能
结合使用场景,学生管理系统在正常运营使用过程中,一般不会出现太大的同时高并发高性能方面的业务特性,因此在计算高性能和存储高性能上可以暂不用考虑。
可扩展
学生管理系统在可扩展方面,没有过多的需求,当前系统架构即可支持上千量的学生使用,如果后续要扩展直接进行服务器的升级即可。
安全性
对于学生的个人信息,还是有一定的敏感性。可以考虑防火墙。
3.2 总体架构
采用 B/S 架构,客户端界面使用浏览器,事务处理放在后端;
前置采用 Nginx 作为入口网关和任务分配器工作,同时采用双 Nigix,一主一备。
服务端拆分为四个子系统独立部署:学生子系统、课程子系统、考试子系统、权限子系统;四个子系统之间使用 HTTP 协议,JSON 数据格式进行通信交互;
为了满足计算层高可用,之间的通信所需的负责均衡通过 Nginx 来实现,Nginx 需要实现健康检查以达到故障转移目标
数据存储层采用 MySQL,部署一主一备,主备复制,以达到高可用高可靠目标
4. 详细设计
4.1 核心功能
4.2 关键设计
4.3 设计规范
5. 质量设计
6. 演进规划
版权声明: 本文为 InfoQ 作者【阿姆斯壮】的原创文章。
原文链接:【http://xie.infoq.cn/article/148c969352d86544a103a44b9】。文章转载请联系作者。
评论