写点什么

外包学生管理系统架构设计文档

作者:李晓笛
  • 2021 年 12 月 30 日
  • 本文字数:1151 字

    阅读完需:约 4 分钟

前言

本文是外包学生管理系统架构设计文档,用于指导后续外包学生管理系统的架构设计及开发、部署、运维等工作。

词汇表

Nginx:Nginx 是一款轻量级的 Web 服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用,在外包学生管理系统中 nginx 主要起到反向代理作用。

微服务:微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的 API 进行通信的小型独立服务组成。这些服务由各个小型独立团队负责。

1、业务背景

随着学生人数的逐渐增多,常规的学生管理工作给教师和学生带来的极大的不便,为提升提升学生管理工作的效率,打通学生、教师、后勤、财务之间的业务关系,实现学生管理工作的、线上化、信息化;同时队线上沉淀的数据进行进一步分析从而有利于学校做出更优决策,学校决定进行学生管理系统的建设工作。项目结合结合自身的技术实力,综合考虑时间、成本等因素决定采用外包的形成进行学生管理的建设工作。

2、约束限制

1、本项目的投资经费为 120 万元。

2、项目初步计划于 2021 年 12 月 31 日之前完成投产上线。

3、项目数据库在保证业务的前提下尽量采用开源数据库,以便节省项目成本。

4、质量标准符合 ISO9001。

5、项目要充分考虑系统的复用性以及可扩展性。

3、总体架构

系统内部 3R 图

系统之间 3R 图

3.1 架构分析

高可用:各个子系统之间采用了多台服务器部署,保证了子系统一定程度上的高可用。

高性能:子系统多台不服气部署以及数据库主从复制的方式在一定程度上提升了系统的性能。

复杂度:系统采用 Java 语言进行开发,开发语言层面技术复杂度不高,系统整体涉及开发框架及中间件比较少,技术复杂度不高,同时业务需求清晰,业务复杂度也比较简单。

3.2 总体架构

1)系统包含一台主 MySQL 和一台备 MySQL,分组内主备数据复制,分组间数据不同步。

2)正常情况下,分组内的主服务器对外提供消息写入和消息读取服务,备服务器不对外提供服务;主服务 器宕机的情况下,备服务器对外提供消息读取的服务。

3)nginx 采用反向代理的模式将请求转发到各个服务。

4、详细设计

4.1 核心功能

4.1.1 用户登录流程

用户登录-用户权限-用户功能

4.1.2 学生选课流程

用户登录-用户权限-选课功能-考试功能

4.2 关键设计

Mysql 的主从复制模式保证了数据库的高可用性。

划分各个子系统的设计模式实现了系统之间的解耦,提升了系统的性能。

4.3 设计规范

1)各个子系统使用 Spring Boot 开发

2)MySQL 使用 Innodb 存储引擎

3)json 数据结构为

{module:"",

value:""

}

5 质量设计

可测试性:平台的功能和非功能性必须满足所有的测试用例;

可维护性:工程师、运维工程师在不同的生命周期,都能高效地在系统上工作。

成本:成本不能超支。

6 研进规划

项目二期将增加新的业务子系统;

子系统之间采用 TCP 协议进行通信;

各个子系统使用独立的数据库以进一步提升系统的性能。

用户头像

李晓笛

关注

还未添加个人签名 2020.02.19 加入

还未添加个人简介

评论

发布
暂无评论
外包学生管理系统架构设计文档