写点什么

架构实战营作业 3

作者:阿姆斯壮
  • 2022-10-27
    广东
  • 本文字数:989 字

    阅读完需:约 3 分钟

作业要求


前言


编写该文档目的:便于用户,开发人员之间进行理解和交流,可以作为项目开发工作的基础和依据以及确认测试和验收的依据。


最后可为后面必要的系统升级或维护提供一些必要的系统信息;本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的修改,删除等功能,能够快速的查询学生的相关信息。以备后期方案设计筹划作为参考依据。


修订历史



词汇表


1. 业务背景


随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。采用人工管理的方式,会带来以下几个问题:


  • 传统方式不仅花费大量的人力资源,处理效率也十分低下。

  • 随着时间积累,管理信息的成本会越来越大。

  • 旧数据不容易保存,信息容易出现混淆和丢失。


采用信息管理系统能解决以下问题:

  • 解约人力成本。

  • 可以实现学生信息管理系统化,规范化,自动化。

  • 方便统计学生各类信息,例如:选课,成绩查询等等。



2. 约束和限制


  1. 开发语言选择 JAVA

  2. 成本限制在 100 万以内

  3. 开发周期在 2023 年 3 月 10 日完成发布上线

  4. 数据库限制使用 MySql

  5. 使用 TDD 工作方式,测试驱动开发模式。

  6. 客户端操作系统 windows11,服务端 Centos。

3. 总体架构



3.1 架构分析


高可用

由于录入学生信息比较繁琐,加上还需要人工审核。所以对信息高可用要求有一定要求。

信息丢失,也会导致其他业务受到影响。所以设计必须考虑高可用性。数据库使用主从结构。定期自动化备份数据。


高性能

结合使用场景,学生管理系统在正常运营使用过程中,一般不会出现太大的同时高并发高性能方面的业务特性,因此在计算高性能和存储高性能上可以暂不用考虑。

可扩展

学生管理系统在可扩展方面,没有过多的需求,当前系统架构即可支持上千量的学生使用,如果后续要扩展直接进行服务器的升级即可。

安全性

对于学生的个人信息,还是有一定的敏感性。可以考虑防火墙。

3.2 总体架构


  1. 采用 B/S 架构,客户端界面使用浏览器,事务处理放在后端;

  2. 前置采用 Nginx 作为入口网关和任务分配器工作,同时采用双 Nigix,一主一备。

  3. 服务端拆分为四个子系统独立部署:学生子系统、课程子系统、考试子系统、权限子系统;四个子系统之间使用 HTTP 协议,JSON 数据格式进行通信交互;

  4. 为了满足计算层高可用,之间的通信所需的负责均衡通过 Nginx 来实现,Nginx 需要实现健康检查以达到故障转移目标

  5. 数据存储层采用 MySQL,部署一主一备,主备复制,以达到高可用高可靠目标


4. 详细设计


4.1 核心功能


4.2 关键设计


4.3 设计规范


5. 质量设计


6. 演进规划


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

阿姆斯壮

关注

进击的lulu 2018-10-13 加入

数学的世界,算法的世界,编程的世界,有趣的世界里有太多的996。。。只有强大了自身才有say no 的资本。

评论

发布
暂无评论
架构实战营作业3_架构实战营_阿姆斯壮_InfoQ写作社区