模块一
一、微信业务架构
二、学生管理系统
1、项目需求
1 要求可以通过公网域名访问;
2 要求至少 3 人合作完成;
3 能够支撑管理 1000 个学生;
4 不推荐太简单和太复杂的方案。
2、复杂度分析
高性能:仅有 1000 名学生,数据量较少,不需考虑高性能。
高可用:学生管理系统使用时间频率不会太高,但最好还是保证服务可用。
数据高可用:虽然只有 1000 名学生,但数据全部丢失会有一定的影响,需考虑数据备份。
可扩展:数据量较少,即使学校扩招也会有一定的范围,暂不考虑可扩展性。
成本:毕设项目,而且经济条件一般,不宜使用太大成本。
3、备选架构
3.1、方案一:
优点:
1、采用 nginx 做均衡,两台业务服务器,以保证服务可用。
2、mysql 数据库采用准备,确保数据可用。
缺点:
1、需要多一台 nginx 服务器,成本增加。
3.2、方案二:
优点:
1、采用了 dns 做路由转发,两台业务服务器,以保证服务可用。
2、相比方案一,可以少部署一个 nginx 服务器,节省一台服务器。
3、mysql 数据库采用准备,确保数据可用。
缺点:
暂无
3.3、方案三:
优点:
1、采用了 dns 做路由转发。
2、mysql 数据库采用准备,确保数据可用。
3、考虑了团队技术优势,前后端分离,团队可以前后端同时开发,节省时间。
4、成本和方案二差不多。
缺点:
1、php 前端服务器一旦挂了,服务将不可用。
4、方案选择
最终选择方案二。
因为方案二符合架构设计三原则:
1、合适原则:符合团队技术水平和积累;开发成本低;系统运维成本低。
2、简单原则:不进行系统拆分,部署维护简单。
3、演化原则: 学校的学生数量不会发生很大变化,系统架构够用多年。
不选方案一原因:
方案一需要多部署一个 nginx ,也就是需要多准备一台服务器,成本比方案二高。
不选方案三原因:
php 前端服务器一旦挂了,服务将不可用。
评论