【架构设计模块一】:微信业务架构图 & 学生管理系统
画出微信的业务架构图
“学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
作业要求:
① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③ 给出你选择的最终方案以及选择理由
判断复杂度
✅高性能:支撑管理 1000 个学生
✅高可用:保持一定的可用性即可
✅可扩展:本校使用,要求可用
✅成本:大家都没啥钱
✅安全:仅存储本校师生基本信息
✅架构要求:不推荐过于简单和复杂的——答辩要求
✅其它原则:
✅都会 Java,有一个 PHP 高手:考虑协作及意外情况——都使用 Java
架构思路 1
数据存储:
存储安全:2 台机器互为主备
服务:单体架构
域名代理:指向前置机
部署方式:
服务简单部署即可
架构思路 1
数据存储:
存储安全:2 台机器互为主备
服务:单体架构
域名代理:指向前置机
部署方式:
服务简单部署 * 2
高可用性
架构思路 3
数据存储:
存储安全:2 台机器互为主备
服务:服务拆分
域名代理:指向前置机
部署方式:
服务简单部署
架构思路 4
数据存储:
存储安全:2 台机器互为主备
服务:单体架构
域名代理:指向前置机
部署方式:
前置机负载均衡
高可用部署
小结
方案 1:
优点:架构简单;数据可靠;方便部署;成本低
缺点:非高可用
方案 2:是 1
优点:协作方便;数据可靠;方便部署;成本较低
缺点:高可用
方案 3:
优点:协作方便;数据可靠;成本较低
缺点:非高可用;部署复杂;架构较复杂
方案 4:
优点:协作方便;数据可靠;高可用
缺点:成本高;部署复杂;架构很复杂
最终选择方案 2:
合适原则:满足毕设需要,有一定的复杂度且服务可用;方案 1 过于简单;方案 3 架构复杂;方案 4 有时间风险
简单原则:
MySQL 主备:业务使用不复杂,数据可靠性有保障
单体服务:服务未进行拆分,统一技术栈 Java
演进:
只使用基础技术,未引入如 K8S 基础设施,便于后续演进
未进行服务拆分,后续可根据需要部署拆分服务
版权声明: 本文为 InfoQ 作者【Ryoma】的原创文章。
原文链接:【http://xie.infoq.cn/article/1cf9dad884ab6e1801c8efeea】。文章转载请联系作者。
评论