微信业务架构图 & 学生系统技术架构图
1.微信业务架构图
前期准备
2. 学生系统架构图
2.1 需求
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
作业要求:
① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③ 给出你选择的最终方案以及选择理由。
2.2 需求分析
参考上课内容
学生管理
教师管理
课程管理
权限管理
考试管理
2.2 系统分析
支持公网域名访问
支撑管理 1000 个学生
预留系统增长性 2 倍
复杂度应该适中
高性能: 因为整体只有 1000 个学生使用,整体用户量较少,不需要考虑高性能要求
高可用:毕设要求做真正可运行的学生管理系统,保障学校学生能正常使用,数据可用性高,尽量避免服务单点故障
可扩展:暂不需要考虑后期的扩展。
成本:由于项目组经济条件一般,成本整体需要尽量的小
其他: 由于在校开发,结合学生背景,先能用,再优化
资源要求
人力:3 人 统一技术栈 java
考虑 php 学习成本
项目管理
人力较少,暂不考虑分模块部署系统开发
项目脚手架应按照需求模块进行区分,方便多人协同开发
可通过每天短会的方式,汇报进度以及困难
经济条件一般
服务器要求不易太多
时间根据毕设条件: 2 个月
总结
控制成本
方案尽量简单,可实施性高
项目把控人应该尽量选择技术能力强的同学,统一把控进度
2.3 架构设计
2.3.1 备选一
描述:
资源要求: 5 台服务器
优点:
整体架构简单,业务服务器有负载均衡,可用性也较高
通过需求模块进行任务拆分
缺点:
nginx 存在单点故障
前后端未分离
管理系统单一服务高峰期负载较高
2.3.2 备选二
描述:
较之与备选一,解决 nginx 层单点问题,增加管理系统可用性
资源要求: 7 台服务器
优点:
稳定性相对较高
业务服务器有负载均衡,可用性也较高
缺点:
前后端未分离,影响性能
部署机器较之与之前有所增加
2.3.3 备选三
描述:
较之与备选二,前后端进行分离,nginx 服务器上可以部署前端页面
资源要求: 7 台服务器
优点:
稳定性相对较高
管理系统只需要进行服务单一后端开发,服务性能提高
缺点:
前后端分离带来的开发以及部署难度
2.4 总结
整体会选择备选架构 2
在时间人力,成本综合考虑下
学生管理系统重要在于可用性,备选 2 较之于备选一增加 nginx,以及后端服务,避免单一节点故障 适合
备选 2 较之于备选 3 少了前后端分离操作,但是在开发效率上,作为单体应用,开发难度不会那么大 简单
综上所述 选 3
3 参考
没思路先看看别人怎么写
评论