写点什么

架构实战营模块 1 作业

作者:陌生流云
  • 2022 年 9 月 25 日
    辽宁
  • 本文字数:816 字

    阅读完需:约 3 分钟

1、画出微信的业务架构图

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

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

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

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

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

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

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

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

  • 大家经济条件一般;


作业要求:

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

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

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


  • 需求:真正的可运行的学生管理系统

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

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

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

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

  • 判断:

  • 公网域名访问

  • 管理 1000 个学生

  • 不推荐太简单和太复杂的方案

  • 复杂度:

  • 高并发:只有 1000 个学生,可能只有在选课的时候才会出现并发的情况, 可以考虑选课时增加服务器实例个数

  • 高性能:可忽略

  • 可扩展:

  • 选课,考试需要代码的可扩展性,可插拔,模块化

  • 需要支持服务力扩容(防止宕机)

  • 安全:数据同步及每日备份

  • 拆解:

  • 域名

  • ng 转发

  • web 服务器

  • mysql 数据库

  • 备选方案:

  • 备选方案 1

  • 备选方案 2:

  • 取舍:

  • 大家都会 java,但是有一个是 PHP 高手

  • 方案 1:4 个业务模块一个整体的服务,考虑大家都会 java,如论从成本还是日常维护,所以选择 java 开发及部署

  • 方案 2:分为 3 个子系统,因为有 PHP 高手,选课和考试会涉及一些并发所以 PHP 开发该模块,另外 2 个 java 同学开发学生管理及权限管理系统

  • 选择方案 1

  • 大家经济条件一般

  • 通用:所以都选择从学校域名开通二级域名,并开通外网开名单

  • 方案 2:单单从机器数量来看,备选方案 2 要保证高可用,至少需要 6 个实例,每个子系统 2 个实例,还有问题排查及子系统之前的调用链

  • 方案 1:日常运行只需要 2 个实例来保证高可用,ng 随时切换

  • 选择方案 1

  • 更具架构设计三原则总结

  • 方案 2 配备了合适原则及简单原则

最终选择方案 1

用户头像

陌生流云

关注

还未添加个人签名 2018.04.26 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块1作业_架构实战营_陌生流云_InfoQ写作社区