学生管理系统架构
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
1)要求可以通过公网域名访问;
2)要求至少 3 人合作完成;
3)能够支撑管理 1000 个学生;
4)答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
1)大家都会 Java,但是有一个是 PHP 高手
2)大家经济条件一般
要求:
1)对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
2)画出你的备选架构方案,并说明方案的优缺点。
3)给出你选择的最终方案以及选择理由。
方案一:
优点:
1.MySQL 主备集群,数据高可用。
2.Web 服务器集群确保服务具有较高的可用性。
3.Nginx 充当负载均衡并绑定域名进行请求转发。
4.对团队技术要求较低。
5.部署、维护简单。
缺点:
1.业务全部集中在同一个 Web 应用中,若某个模块异常可能拖垮整个服务。
方案二:
优点:
1.MySQL 主备集群,数据高可用。
2.按业务系统拆分,业务间低耦合,水平扩展简单。
3.Nginx 充当负载均衡并绑定域名进行请求转发。
缺点:
1.业务系统拆分较多,开发周期较长,团队人手可能不够。
2.需要多台 Web 服务器,成本较高。
综上,最终选择方案一,理由如下:
合适原则
1)对团队技术水平要求较低,符合团队的技术水平和积累。
2)架构简单,开发周期短,开发成本低。
3)系统部署、维护简单。
简单原则
1)不拆分系统,开发、部署、维护简单。
2)无需进行业务分配
演化原则
1)后续演化基本上为业务需求变更或拓展,对架构影响不大,若后期需要进行服务拆分等,再进行拆分即可。
2)用户体量不会发生太大变化,对系统的高可用、高性能、可扩展性要求不会有太高要求。
评论