【模块一】命题作业
1. 画出微信的业务架构图。
2. “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:1 要求可以通过公网域名访问;2 要求至少 3 人合作完成;3 能够支撑管理 1000 个学生;
4 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:1 大家都会 Java,但是有一个是 PHP 高手;2 大家经济条件一般。
作业要求:1 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。2 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。3 给出你选择的最终方案以及选择理由。
2.1 分析
首先学生量级不高,并不需要高性能;
其次对于学生个人数据,需要做到尽量不丢失,高可用,因此需要使用数据库主从架构;
另外只是一间学校接入,可扩展性要求不高;
可以通过公网域名访问,为了防止恶意攻击,需要保障安全性
2.2 备选架构 1
优点:直接利用学校已有的 DNS 做流量接入,只需额外租用 4 台主机即可,成本最低。
缺点:会暴露业务服务器真实 ip,容易遭受恶意攻击。
2.3 备选架构 2
优点:在备选 1 的基础上,另外租用多一台服务器用来安装 Nginx 做反向代理,能隐藏后端真实服务的 ip,同时也能提供一些静态页面的缓存,以及防刷等功能
2.4 备选架构 3
优点:把每个模块单独拆分成子系统,独立部署,扩展性较高
缺点:对于经济条件一般的同学们来说,成本较高
综上所述,最终选择方案 2。
版权声明: 本文为 InfoQ 作者【zclau】的原创文章。
原文链接:【http://xie.infoq.cn/article/202f16fbc5cc61ede033d8a7d】。未经作者许可,禁止转载。
评论