架构实战营 4 期 - 第 1 周作业
![架构实战营4期-第1周作业](https://static001.geekbang.org/infoq/d3/d3372ac70a564529bc0c5f1404aaca57.jpeg)
画出微信的业务架构图
![](https://static001.geekbang.org/infoq/34/342d8501185b881c9d8cfbfafba1c9ea.png)
微信分为多个模块,聊天功能,朋友圈,支付,基础管理和其他功能。
聊天功能
聊天功能包含文字聊天,语音聊天,视频聊天,表情包以及管理等
朋友圈
朋友圈包括发布动态,评论,消息,广告等
支付功能
支付功能包含扫码支付,钱包,收款,付款以及生活服务等
基础管理功能
管理好友和群组以及消息订阅
其他功能
附加功能,包括小程序和收藏文章及文件
“学生管理系统”毕设架构设计
面向复杂度架构设计 - - 判断复杂度
1、高性能?
按业务方需求,只要能够支撑管理 1000 个学生,此部分对高性能没有要求,单体应用可以满足;
2、高可用?
学生信息不能全部丢失,这部分可以考虑数据备份存储;
3、高扩展?
毕设架构设计我认为可以不考虑高扩展性,基本上是答辩完成就毕业了。另一个原因学生管理系统功能需求是比较明确的,一次上线基本上改动比较小,不用把系统进行拆分。
4、成本、安全?
因为大家经济条件一般,所以建议一到二台服务器部署方式就行。学生的基本信息不会涉及过多的敏感字段,所以安全也就满足基本安全措施就行。
面向复杂度架构设计 - - 备选架构 1
![](https://static001.geekbang.org/infoq/a8/a89014dbd74870803f8268c1c7c289da.png)
优点:
1、单体应用开发、部署简单,适合小规模应用场景;
2、成本低,二台服务器就可以解决;
缺点:
1、各个节点没有备份,如果出现故障就不能使用了;
2、数据库采用文件备份,如果出现磁盘故障,数据就全部丢失了;
面向复杂度架构设计 - - 备选架构 2
![](https://static001.geekbang.org/infoq/93/93607b154d55f98ece04b300dbef96b4.png)
优点:
1、单体应用开发、部署简单,适合小规模应用场景;
2、数据库设为主备机制,数据不丢失可靠性增加;
缺点:
1、单台业务服务器出现故障,影响整块业务;
2、成本上升,按此架构增加服务器数量;
面向复杂度架构设计 - - 备选架构 3
![](https://static001.geekbang.org/infoq/5d/5dc292fc6796a4f307ef19a914e5b86a.png)
优点:
1、单体应用开发、部署简单,适合小规模应用场景;
2、数据库设为主备机制,数据不丢失可靠性增加;
3、业务服务器两台,增加了业务的可靠性,通过负载均衡减少单台服务器的压力。如有一台损坏,可以切换到另一台,不影响正常的业务;
缺点:
1、成本上升,按此架构增加服务器数量;
给出你选择的最终方案以及选择理由
按毕设架构设计的 3 名同学,经济条件一般的情况,建议选择备选架构 3,按 3 人各分摊一台服务器的成本,过后再 A 一台服务器,就可以完成 4 台服务器的部署。
此备选架构 3 方案,最主要的是都有备份服务器,不担心单机故障影响业务。如果用户访问量增加,会通过负载均衡减少单台服务器的压力,对业务影响不大。数据库增加了备份节点,不用担心数据丢失的隐患。
评论