写点什么

微信及学生管理系统架构分析

用户头像
summer
关注
发布于: 刚刚
微信及学生管理系统架构分析
  • 对微信的业务进行分析,绘制业务架构图



  • “学生管理系统”毕设架构  

假设今年学校毕业要求提升,要求做真正可运行的学生管理系统,学院对毕社的具体要求如下 :

① 要求可以通过公网域名访问  

② 要求不少 3 人合作完成 

③ 要够支撑管理 1000 个学生 

④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。

你找了 2 个好朋友一起来做这个项目,你们的基本情况如下 :

① 大家都会 Java,但是有一个是 PHP 高手 

② 大家经济条件一般。

作业要求 :

① 对照面向复杂度架构的方法,构思 2 个以上的备选架构方案。

② 使用 PPT 来画出你的备选架构方案并说明方案的优缺点。

③ 给出你选择的最终方案以及选择理由。


Step1. 首先,分析作为毕设的“学生管理系统”的功能和使用场景,定位复杂度


  • 功能包括:学生登录、登出,学生信息管理,课程管理,成绩管理

  • 用户范围和角色:一个学校的学生、老师、运维(管理)人员


Step2.从性能、可扩展、高可用分析

  • 性能:要够支撑管理 1000 个学生

用户数量很少,系统功能定位决定,对学生信息、课程等管理和查询的使用频率不高,因此性能要求不高。

  • 可扩展

学生管理系统的用户数量不会出现大幅增长,系统功能也相对固定,一般情况下不会产生较高的可扩展要求。

  • 高可用

系统宕机的情况发生,对校园工作影响不大。高可用要求较低,可以不考虑负载均衡或复杂的高可用策略。

数据可靠性有一定要求,如果系统数据库的学生信息全部丢失,在没有其他接口同步的情况下,修复很麻烦。需要考虑数据可靠性策略,考虑通过主备库方案。

  • 成本

建设成本有限,大家的经济条件一般。考虑使用开源 MySQL 数据库,也能够满足性能要求。另外部署可以选择学校的机房服务器,或租赁云上服务器。


Step3. 设计



方案 1:单体应用

wei3 人分模块开发,集成在一个 java web 应用,配备主从数据库保证数据可靠性。

优点:

  • 部署运维简单,系统异常处理定位容易

  • Nginx 可绑定域名

  • 主备数据库,保证数据可靠性

缺点:

  • 作为毕业设计架构过于简单

  • 所有功能集中在一个服务,3 人开发无法发挥各自优势



方案 2. 微服务应用

系统划分为多个子系统,按业务分 4 个应用服务,配备主从数据库保证数据可靠性。

优点:

  • 开发分工可按照子服务分配,可采用异构技术栈,发挥 php 高手优势

  • Nginx 可绑定域名

  • 主备数据库,保证数据可靠性

缺点:

  • 部署运维复杂度高,若不同服务部署在不同主机,成本也会增高



方案 3. 前后端分离

系统采用前后端分离的开发模式,部署分前后端两个服务,配备主从数据库保证数据可靠性。

优点:

  • 开发分工可按照前后端分配,php 做前端,后端由 2 个人承担 java 接口开发

  • Nginx 可绑定域名

  • 主备数据库,保证数据可靠性

缺点:

  • 前端功能的后期运维依赖于少数技术栈人员


结论. 综上选择方案 3,理由如下:


合适原则

  • 符合团队能力,资源平衡分配

  • 具有一定的架构设计,符合毕业设计的要求

  • 服务数量拆分合理,部署运维工作量少

简单原则

  • 根据当前系统需求,不过度拆分业务子系统,只存在前后端交互

  • 无其他中间代理

演化原则

  • 后续产生扩展性要求的话,前后台均可根据需求进行拆分,或扩展

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

summer

关注

还未添加个人签名 2019.02.16 加入

还未添加个人简介

评论

发布
暂无评论
微信及学生管理系统架构分析