写点什么

【架构设计模块一】:微信业务架构图 & 学生管理系统

用户头像
Ryoma
关注
发布于: 2021 年 07 月 03 日

画出微信的业务架构图



“学生管理系统”毕设架构设计

假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:

① 要求可以通过公网域名访问;

② 要求至少 3 人合作完成;

③ 能够支撑管理 1000 个学生;

④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。

你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:

① 大家都会 Java,但是有一个是 PHP 高手;

② 大家经济条件一般。

作业要求:

① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。

② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。

③ 给出你选择的最终方案以及选择理由

判断复杂度

  1. ✅高性能:支撑管理 1000 个学生

  2. ✅高可用:保持一定的可用性即可

  3. ✅可扩展:本校使用,要求可用

  4. ✅成本:大家都没啥钱

  5. ✅安全:仅存储本校师生基本信息

  6. ✅架构要求:不推荐过于简单和复杂的——答辩要求

  7. ✅其它原则:

  8. ✅都会 Java,有一个 PHP 高手:考虑协作及意外情况——都使用 Java


架构思路 1

  • 数据存储:

  • 存储安全:2 台机器互为主备

  • 服务:单体架构

  • 域名代理:指向前置机

  • 部署方式:

  • 服务简单部署即可



架构思路 1

  • 数据存储:

  • 存储安全:2 台机器互为主备

  • 服务:单体架构

  • 域名代理:指向前置机

  • 部署方式:

  • 服务简单部署 * 2

  • 高可用性



架构思路 3

  • 数据存储:

  • 存储安全:2 台机器互为主备

  • 服务:服务拆分

  • 域名代理:指向前置机

  • 部署方式:

  • 服务简单部署



架构思路 4

  • 数据存储:

  • 存储安全:2 台机器互为主备

  • 服务:单体架构

  • 域名代理:指向前置机

  • 部署方式:

  • 前置机负载均衡

  • 高可用部署



小结

  1. 方案 1:

  2. 优点:架构简单;数据可靠;方便部署;成本低

  3. 缺点:非高可用

  4. 方案 2:是 1

  5. 优点:协作方便;数据可靠;方便部署;成本较低

  6. 缺点:高可用

  7. 方案 3:

  8. 优点:协作方便;数据可靠;成本较低

  9. 缺点:非高可用;部署复杂;架构较复杂

  10. 方案 4:

  11. 优点:协作方便;数据可靠;高可用

  12. 缺点:成本高;部署复杂;架构很复杂


最终选择方案 2:

  • 合适原则:满足毕设需要,有一定的复杂度且服务可用;方案 1 过于简单;方案 3 架构复杂;方案 4 有时间风险

  • 简单原则:

  • MySQL 主备:业务使用不复杂,数据可靠性有保障

  • 单体服务:服务未进行拆分,统一技术栈 Java

  • 演进:

  • 只使用基础技术,未引入如 K8S 基础设施,便于后续演进

  • 未进行服务拆分,后续可根据需要部署拆分服务

发布于: 2021 年 07 月 03 日阅读数: 12
用户头像

Ryoma

关注

学如逆水行舟 2018.05.14 加入

一只菜菜的全沾工程师

评论

发布
暂无评论
【架构设计模块一】:微信业务架构图 & 学生管理系统