华仔训练营第一次作业
1.画出微信的业务架构图
学生管理系统毕设架构设计
需求:
1)可通过公网访问的学生管理系统
2)能够支撑管理 1000 学生
需求清晰,可以进入下一阶段判断复杂度
复杂度:
1)不需高性能、高可用
2)安全性需要保证常规的非明文密码、sql 注入攻击等
3)成本需要可控,满足开发者是普通学生的开销标准
4)功能模块包含用户管理、角色权限管理、组织管理三个。扩展性需要考虑,但是权重不大
拆分工作完成,基本定位为一次性开发、允许重启方式纠错、需要保证数据不丢失、满足普通安全性的系统。进入系统拆解阶段
拆解:
1)前置需要有公网域名,可以通过现有的云服务商购买,此方案可以固定无需做备选
2)可以使用服务商的负载均衡服务,为可选项
3)需要包含前后端、数据库。
由于技术储备包含 java 和 php,前端和后台服务均可以使用 java 或 php;
数据库需要负载 1000 人,可以使用开源版数据库例如 mysql 社区版,或使用 mongo
备选架构 1:单服务器(学生笔记本电脑)+php 做前端+java 做后端+mysql
备选架构 2:单服务器(学生笔记本电脑)+php 做前端+java 做后端+mongo
两个方案除了数据库没有差别,故不展开讲解
备选架构 3:负载均衡服务+php 做前端+java 做后端+docker 镜像挂载到服务器(学生笔记本电脑)
备选架构 4:负载均衡服务+php 做前端+java 做后端+docker 镜像挂载到服务器(云服务器)
从效果而言,最好的无疑是架构 4,使用了 docker 镜像,将服务挂到云服务器的不同端口,再使用 ng 进行负载均衡,但是成本无疑也是最高的。此方案对于没有选课服务的实现来说,各种配置都是溢出的。
所以综合考量,使用备选架构 1。首先这个是毕业设计,所以基本除了毕设展示时间,不会有真正的使用量,所以使用学生的笔记本电脑即可。php 的强项在于快速生成页面,而且有个 php 高手,所以把所有页面都交给该同学完成即可;后端服务中和前端交互较多的是用户管理,可以由一名同学负责,另外两个模块基础功能较多,可以由剩下的同学完成,分工清晰明确;使用 mysql 作为数据库,是考虑到大学期间数据库知识是必修课,所以大部分学生都有这方面的能力,而 mongo 还需要专门学习所以不考虑
评论