写点什么

架构师实战营 模块一作业 微信业务架构图

用户头像
好吃不贵
关注
发布于: 2021 年 04 月 06 日
  1. 画出微信业务架构图

  1. 设计学生管理系统

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

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

  2. 要求至少 3 人合作完成;

  3. 能够支撑管理 1000 个学生;

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

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

  1. 大家都会 Java,但是有一个是 PHP 高手

  2. 大家经济条件一般

作业要求:

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

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

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

需求分析:

  1. 公网能访问,需要注册域名。

  2. 1000 个学生访问。

架构设计要求:

  1. 高性能?不需要。1000 个学生并不多。

  2. 高可用?需要,数据不可以丢失。

  3. 可扩展?不需要,使用成熟的系统即可。

复杂度:

  1. 业务复杂度低:业务比较单纯。

  2. 技术复杂度低:不需要太高的性能和可扩展性。

架构三原则:

  1. 合适原则:都会 Java,一个 PHP 高手,可以考虑用 Java 做后端,PHP 做前端。

  2. 简单原则:业务不需要拆分太细,不需要微服务。

  3. 演化原则:学校学生数量变化不大,不怎么需要演化。

备选架构方案设计

方案一:单机房数据隔离

服务不隔离,数据库隔离,把每个学校的数据放在不同的 MySQL 服务器上。数据 MySQL 主从复制,每日备份。

方案二:单机房服务、数据双隔离

相比方案一,不同学校的服务也隔离在不同的容器内部了。

方案三:双机房数据隔离

两个机房分别运行相同的微服务和存相同的数据。好处是某个机房故障后,另一个可以马上启用。

方案四:双机房服务数据双隔离

这样可以确保服务和数据都是完善,没有丢失的。


方案的选择:选方案一

原因:单机房成本低,对三个学生来说,负担得起。

方案二的服务隔离,没有必要,不符合简单原则。

方案三的 Docker 集群没必要,不符合简单原则,也不符合演进原则。

方案四成本太高,不符合简单和演进原则。


用户头像

好吃不贵

关注

还未添加个人签名 2018.11.20 加入

还未添加个人简介

评论

发布
暂无评论
架构师实战营 模块一作业 微信业务架构图