架构师实战营 [M1]- 微信的业务架构和学生管理系统架构设计
微信的业务架构
学生管理系统架构设计(毕设)
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
要求可以通过公网域名访问;
要求至少 3 人合作完成;
能够支撑管理 1000 个学生;
答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
大家都会 Java,但是有一个是 PHP 高手
大家经济条件一般
方案说明
考虑到业务不需要进行更加细化的拆分,所以以下的两套方案都采用下图的业务架构
方案一:热门、前后分离
说明:
项目动静分离,利用 Nginx 做反向代理,后期服务做负载伸缩提供可能,MySQL 主从部署,考虑到是毕设项目、选取当下较为热门的 SpringBoot 做后端服务,部署方案可将 Nginx 部署到公网,通过 FRP、Zerotire One 或其他内网穿透技术将 API 服务暴露给公网服务,剩余服务内网访问。或者全部直接在本地部署,直接将 Nginx 暴露给公网。
方案二:经典,技术兼顾
说明:
项目采用经典项目设计,利用 Nginx 做反向代理,后期服务做负载伸缩提供可能,MySQL 主从部署,考虑到是毕设项目、项目使用 SSM+JSP 的方案进行,实现方式与 PHP 有异曲同工之妙,能有效利用 PHP 同学精通的资源,同时兼顾其他同学的业务开发,通过 FRP 或其他内网穿透技术 Nginx 暴露给公网。
选择和说明
整个项目需求业务需要承载管理 1000 名学生的数据,数量较少,单机性能足够。
对于答辩的时候会根据架构方案来进行相关评分,所以技术手段越新,越有加分可能
需要选择维护成本比较低。
对于两套方案,成本和可靠性和可伸缩性都差不多,主要在对毕设的场景。
对于毕设项目来说,会建议选择方案一的实现,相对于方案二来说:
对所有同学都有一定的挑战,对于学习和技术升级有一定的帮助
技术当下热门、动静分离
对于非毕设项目来说,建议选择方案二的实现,相对于方案一来说
能够充分利用 PHP 同学的优势
能有效满足场景的业务需求
评论