[模块一作业]
微信架构
“学生管理系统”毕设架构设计
需求分析:
1.安全:公网可访问,因此需要考虑 web 安全,防止 DDOS 攻击,账户泄露,XSS 攻击等,因此需要相关的网关服务进行 LB/限流/SSO 认证等
2.高可用:由于涉及学生数据存储,因此需要做到系统高可用,保证数据可用和持久化
3.高性能:因为目前只有 1000 个学生,因此系统整体 qps 不会超过 1000,性能要求不高,单机即可实现。
4.3 人合作,在技术栈选型上会选 java
成本:目前经济条件有限不会考虑
方案一,网关服务负责挂载公网 ip,代理网络流量到后端,隐藏业务服务,当外网被攻击或者切内网时可以直接无成本切换;
方案二
前后端分离项目,前端 web 主要存储静态资源,进行 SSO 鉴权,后端业务服务单独部署,为后续水平扩展分布式集群提供方便
选择方案 2
架构设计三原则
合适原则
考虑外网部署,因此前端服务需要进行身份认证,鉴权等功能开发,且和后端分离,防止 DDOS 把后端打挂,同时 php 同学可以在 web 服务器上进行相关的前端功能开发,解放了后端的一些非核心业务功能迭代。
简单原则
整个业务复杂度性能要求不高,因此采用单体服务部署,数据需要保证可靠性,因此采用 mysql 主备
演化原则
前后端分离,方便后续水平扩展,后端也可以拆解微服务架构,db 后续可以进行分库分表构建
评论