写点什么

极客时间—架构实战营—第九期—模块一作业

作者:阿梁
  • 2022 年 9 月 27 日
    上海
  • 本文字数:635 字

    阅读完需:约 2 分钟

极客时间—架构实战营—第九期—模块一作业

1. 画出微信的业务架构图:

一开始掏出笔和纸,“张小龙附体”,准备兴致勃勃在草稿纸上,画出整个微信的架构图的。


结果画着画着意识到,看起来简单的微信,其包含的业务是如此的多。不管是分层,还是用思维导图画,其复杂度都远远不是当前的自己 cover 住的。


于是果断的断、舍、离,聚焦精力到和自己工作相关的“金融业务”层面。


以下是微信——我的模块——(金融)服务页的业务架构图

(仅仅是一个三级子页面的业务架构图,就是如此丰富。整个微信的业务架构图,最少有下面这个图的 20 倍):



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


如下图所示,给出三种备选架构:


注:三种方案中的业务服务器均采用 Java 语言,由 3 人合作完成开发。


以下对不同方案进行分析:

方案一:

足够简单,足够省钱。只需要买一个域名,租一个服务器即可(SQLite 寄生于业务服务器)。但业务服务器存在单点问题,会影响系统的可用性;SQLite 作为嵌入式数据库,其性能存在瓶颈;同时只有一个主库,数据存在丢失毁坏的风险。


方案二:

较为合理。一台 Nginx 和两台业务服务器,在实现负载均衡的同时,满足了一定程度的高可用。MySQL 数据库具有较高的并发性,足以应对一千人的系统。同时主库备库的存在保证了数据的安全和稳定。


方案三:

确实很高性能、高可用。但太烧钱了,F5 和 Oracle 加起来够在二线城市买房首付了。等同学们慢慢演化发达了之后再采用这个方案,目前反正不推荐。


综上所述,在基于合适、简单、演化三原则和高性能、高可用、可扩展、安全、成本的角度综合考虑后,我们选择方案二作为定稿。

发布于: 刚刚阅读数: 3
用户头像

阿梁

关注

还未添加个人签名 2020.08.23 加入

还未添加个人简介

评论

发布
暂无评论
极客时间—架构实战营—第九期—模块一作业_阿梁_InfoQ写作社区