Week1 Homework
第一题: 画出微信的业务架构图。
第二题: “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:1 要求可以通过公网域名访问;2 要求至少 3 人合作完成;3 能够支撑管理 1000 个学生;4 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:1 大家都会 Java,但是有一个是 PHP 高手;2 大家经济条件一般。
作业要求:1 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。2 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。3 给出你选择的最终方案以及选择理由。
面向复杂度设计方法论
需求分析
判断复杂度
(1)高性能:性能要求不高,支撑管理 1000 个学生
(2)高可用:保证大部分数据不能丢、不能错。
(3)可扩展:毕业答辩扩展性不需要太高,主要是 3 个人力协作尽量高效(3 个人都会 java,其中 1 个 php 高手)
(4)成本、安全:经济条件一般,服务器尽可能少;公网域名要考虑安全性
(5)其他:答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
拆解备选架构
方案一:
方案二:
方案选择
最终选择方案一:
(1)成本角度:方案一更节约机器。
(2)性能角度,方案二每台服务器用功能拆分,由于功能在不同时间段流量不平均(比如开学选课高峰、期末考试高峰),没有办法发挥多机性能的优势,而方案一架构在成本更低的情况下可以支撑现有业务,且可以通过业务服务的横向扩展解决未来流量增长带来的性能问题。
(3)可用性,方案一保证了服务高可用和数据不丢的要求
版权声明: 本文为 InfoQ 作者【Ray_c】的原创文章。
原文链接:【http://xie.infoq.cn/article/887d39ac9804908b9251b8273】。未经作者许可,禁止转载。
评论