微信业务架构图 & 学生管理系统架构设计
1. 画出微信的业务架构图
2. “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
作业要求:
① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③ 给出你选择的最终方案以及选择理由。
2.1 复杂度判断
高性能
支撑管理 1000 个学生,对性能要求不高。
高可用
学校对学生管理系统的依赖度不大,系统出问题,甚至挂掉也不会有很大的影响。学生信息是专人人工录入或学生自己录入,如果大面积或全部丢失,补起来会比较麻烦。所以这里有数据高可用的要求。
可扩展
需求稍有一些复杂度,对扩展性有一定要求。
成本
三个学生经济条件一般,成本方面需要考虑。
安全
虽然是公网可访问,但系统里并不涉及资金,隐私等敏感数据,不需要过多考虑。
综上,需要考虑的复杂度:
数据高可能:数据不能大范围或全部丢失。
可扩展:业务需要比较复杂。
成本:三个学生经济条件一般。
2.2 备选架构方案
备选方案 1:
Nginx 反向代理到三个子系统,MySQL 主备部署。
备选方案 2:
三个业务服务器上部署相同的学生管理系统。
备选方案 3:
公网域名的 DNS 解析到两台业务服务器。
2.3 最终方案及选择理由
选择【备选方案 3】。
架构设计三原则:
另补充一点:
在开发语言上选择 Java 语言。因为大家都会使用,开发效率会比较高。
评论