模块一作业
一、微信的业务架构
二、“学生管理系统”毕设架构设计
方案一,服务拆分
架构说明:
根据分析,由于需要公网可以访问,而学校已经具有相关域名,因此只需要一个 nginx 服务,监听并转发相关请求到对应的服务器。
同时,考虑到只是毕业设计,并不会实际投产,因此,数据库不需要考虑集群、主从、主备等相对复杂的技术。
方案二、单体服务
业务架构如下图
部署架构:
架构说明:
由于只需要支持 1000 个学生,加上经济水平有限,因此,不需要购买太多的服务器。只需购买一台性能相对合适的应用服务器,服务器上,部署 nginx 服务、数据库服务、应用服务。
数据库服务,采用主备策略,每天凌晨将数据全量备份到服务器中另外一个目录中。
应用服务层面,采用单体服务形式,分模块的前后端分离式开发。另外,由于有 PHP 高手,可将前端模块开发工作交由 PHP 高手完成,其他两人完成后台相关模块开发。
nginx 服务,监听公网并转发相关请求。
综合
对比两个方案,采用方案二,更利于方案实现和落地。
原因如下:
1,当前是毕业设计、而非实际投产项目,项目规模比较小,无需过于考虑高可用问题;
2,只需要支撑 1000 个用户,用户规模比较小,无高并发场景;
3,开发团队经济水平有限,除了需要购买服务器的开支外,其他服务均可自行搭建,相对节省成本;
4,功能相对简单,减少服务间的外部复杂度,提高服务(模块间)内部复杂度,便于开发。
评论