学生信息管理系统架构设计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学生信息管理系统架构设计相关的知识,希望对你有一定的参考价值。

近期学习架构设计,首先从最基本的学生信息管理系统进行分析。


目的:学生信息管理系统架构设计

思考第一步:识别系统复杂度

??架构设计的真正目的是为了解决软件复杂度带来的问题,故应首先识别本系统复杂度在何处,后文分析完整个系统见分晓。

思考第二步:基本功能

  • 登录
  • 注册
  • 信息查询
  • 成绩管理
  • 课程管理

思考第三步:性能

??一般学校学生约1~5万人,学生信息管理系统访问频率不高,平均每天单个学生的访问次数不到1次,因此性能这部分要求并不复杂,存储使用常规的mysql数据库既能胜任,缓存可以不用,Web服务器使用nginx绰绰有余。

思考第四步:可扩展性

??学生信息管理系统功能比较稳定,可扩展空间并不大,因此可扩展性也不复杂。

思考第五步:高可用

??学生信息管理系统即使宕机2小时,对学生管理工作影响并不大,因此可以不用做负载均衡,更不用考虑异地多活这类复杂的方案。但是,如果学生的数据全部丢失,修复是非常麻烦的,只能靠人工逐条修复,这个很难接受,因此需要考虑存储高可靠,这里就有点复杂了。我们需要考虑多种异常情况:机器故障、机房故障等。针对机器故障,我们需要设计MySQL的同机房主备方案;针对机房故障,我们需要设计MySQL的跨机房同步方案。

思考第六步:成本

??由于系统很简单,基本上几台服务器就能搞定,对于一所大学来说完全不是问题,故无需关注太多。

结论

??至此,可以看出本系统设计方案的主要复杂性体现在存储可靠性上,需要保证异常的时候,不要丢失所有数据即可(丢失几个或几十个学生的信息问题不大)。对应的架构如下:
?

技术分享图片

以上是关于学生信息管理系统架构设计的主要内容,如果未能解决你的问题,请参考以下文章

javaee三层架构案例--简单学生管理系统

《基于微服务架构的在线学习系统设计与实现》第三章 文献随笔

基于python+django学生信息管理系统设计与实现(含程序源码和毕业设计)

基于JavaWeb学生成绩信息管理系统(附源码资料)-毕业设计

信息安全系15级学生课程设计——2018.05 小组课题报告

ssm的学生综合测评管理系统(文档)