从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)
152573 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 66 讲
结束语 (1讲)
结课测试 (1讲)
从 0 开始学架构
15
15
1.0x
00:00/00:00
登录|注册

50 | 架构实战:架构设计文档模板

其他设计
安全设计
可扩展设计
高性能设计
高可用设计
8C
1H
5W
架构演进规划
部署方案
详细设计
核心流程
架构总览
总体方案
备选方案评估
备选方案
复杂度分析
需求分析
需求介绍
架构设计模板
备选方案模板
架构设计文档模板

该思维导图由 AI 生成,仅供参考

在前面的专栏里,有同学留言说想看看具体的架构设计文档。由于信息安全的原因,再加上稍微复杂的系统,设计文档都是几十页,因此专栏无法直接给出详细的文档案例。但我认为提供一个架构设计文档模板还是很有必要的,可以方便你在实际进行架构设计的时候更好地编写相关文档。我还以前面讲过的“前浪微博”消息队列为例,给出架构设计中最重要的两个文档的模板和关键说明。这个案例文档仅给出一些关键内容供你参考,部分细节无法全面覆盖或者完全保证正确。

备选方案模板

1. 需求介绍
[需求介绍主要描述需求的背景、目标、范围等]
随着前浪微博业务的不断发展,业务上拆分的子系统越来越多,目前系统间的调用都是同步调用,由此带来几个明显的系统问题:
性能问题:当用户发布了一条微博后,微博发布子系统需要同步调用“统计子系统”“审核子系统”“奖励子系统”等共 8 个子系统,性能很低。
耦合问题:当新增一个子系统时,例如如果要增加“广告子系统”,那么广告子系统需要开发新的接口给微博发布子系统调用。
效率问题:每个子系统提供的接口参数和实现都有一些细微的差别,导致每次都需要重新设计接口和联调接口,开发团队和测试团队花费了许多重复工作量。
基于以上背景,我们需要引入消息队列进行系统解耦,将目前的同步调用改为异步通知。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文提供了一个消息队列系统的架构设计文档模板,并以“前浪微博”消息队列为例进行详细说明。文章首先介绍了需求介绍和需求分析的模板,包括对需求背景、目标、范围等的描述,以及对消息队列的5W分析和8C约束的详细分析。接着对复杂度分析进行了讨论,包括高可用、高性能和可扩展性等方面的分析。此外,还提供了三种备选方案,并对备选方案进行了评估。整体而言,本文通过提供模板和案例,帮助读者更好地理解架构设计文档的编写方法和内容要点,为实际架构设计工作提供了有益的参考。 文章详细介绍了消息队列系统的总体方案、架构总览、核心流程和详细设计,包括高可用、高性能、可扩展性和安全设计等方面的具体设计考虑点。此外,还提供了部署方案和架构演进规划,为读者提供了全面的架构设计文档模板和案例分析。通过本文,读者可以快速了解消息队列系统架构设计的要点和方法,为实际项目的架构设计提供了有力的参考和指导。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学架构》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(82)

  • 最新
  • 精选
  • 小胖狗
    很愉快的一段旅程。😁😁😁

    作者回复: 江湖再见👍

    2018-08-21
    53
  • 专栏结束啦 走上架构的路才开始 一路走来,繁花似锦 当然,也有曲折和泥泞 这就是旅行吧 架构之路如此,人生也一样 在这路上,有人走的快,有人走的慢 不过不放弃就好 他人的人生你替代不了,你的别人也只能欣赏 华仔就像一个走过此路五百遍的导游 他就轻驾熟,带着我们翻山越岭 看天空的静谧 听风谷的传奇 一路相伴,感谢有你

    作者回复: 太有才了,感谢你的认可

    2019-09-05
    3
    39
  • 空档滑行
    好详细的模版,最怕的就是写文档。文档就是属于写出来看的人不多,感觉写了没用,到关键时候又能发挥作用的那种

    作者回复: 架构文档还是很有用的,因为架构不会随着需求经常变化,所以我们一般要求架构设计文档要一直维护,而业务需求的设计文档,确实版本开发完后就作用不大了,因为需求不断在变,文档维护太麻烦,了

    2018-08-21
    2
    30
  • Monday
    专栏订阅得早,一直没坚持看完。从9月9日到今天10月20,近40天的时间内走完了第一遍。最起码心里有个底,架构是什么,解决了什么,架构带来了哪些复杂度,架构的遵循的原则等等,感谢华仔。看完第一遍不是结束,而是开始,一定会应用在实战中,后续肯定会再次拜读

    作者回复: 加油,这个专栏推荐看三遍,第一遍就是你说的让自己对架构有一个大图理解,做到心里有底;第二遍就是具体在实践中遇到架构问题,然后回到书本来找答案;第三遍就是当你具备一定经验后,回来再理解架构设计原则和架构设计的目的✊������✊������

    2020-10-20
    16
  • 不再犹豫
    画架构图用什么软件?有推荐吗

    作者回复: 最好的还是微软的visio,其次推荐LibreOffice Draw,不推荐用UML画架构图,太丑了😂😂

    2018-08-21
    5
    13
  • plflying
    跟着华仔学习架构,晦涩难懂的内容变得清晰明了。跟着课程一路走来,感谢有你!为加强领悟和学习,稍后我会再读一遍。也期待着华仔新的架构课程快快上线,坐着老司机的特快号,继续徜徉在计算机的思维时空中。

    作者回复: 新的暂时没有,以后应该也不会有了,太难写了😂宁愿写代码

    2018-08-22
    9
  • 哭哭吓唬你
    整体看完了,感谢作者。我在实际工作中有一个问题一直很迷惑,请华仔帮忙解答。 我们服务内部采用的是微服务架构的方式,规定了服务间、对APP 的接口规范。也有网关层负责代理。但是随着业务复杂,服务端的接口越来越多,APP 希望服务端有一个聚合服务,也就是一个大的api ,可以统一编排需要的返回值。并且只愿意和api 层的开发人员打交道。但是,如果这样的话,api 这个服务又会变得特别大。并且还非常无聊。以前就有同事因为api 事杂,收益小离职!请问华仔,这种问题应该怎么解决?我现在采用的是按照业务拆分聚合层,类似于前文中说的虚拟服务组。

    作者回复: 网关层就可以做聚合,至于api聚合没有技术含量,不要让人固定只做网关即可

    2019-01-07
    2
    7
  • Geek_92f9aa
    花了三天,终于赶在课程有效期内看完了,(不好意思我白嫖了😂)真是收益良多。回顾以前做过的项目,很多都理解了,要是能早点看到这本书,当初就不会那么狼狈了。 在学习的过程中,一直有一个问题:项目经理和架构师不是每个公司都有吧?我在之前的一家公司,光做技术的就有三四百号人,没听说有项目经理或架构师。 我们公司有两种管理方式,按技术分:最底层是后端开发,直接上级是开发组长。按业务分:最底层是业务,往上是一个团,团内的同学只负责团内的业务。团业务是产品直接负责的,即产品也是团长。现实是产品既负责业务也管理技术(很多产品都是技术转过来的),但是由于产品的业绩来自业务而非技术,所以很多时候产品会选择牺牲技术换取业务,而作为开发的我们又很难说动产品,技术组长也只是个摆设(技术组长更多负责公共组的内容,即没有入团的业务)。 一次开会,有个同学问部长(管理多个后端组),公司是不是缺少项目经理,部长说:“面对业务的快速迭代,项目经理能做的工作有限,因为需求从提出到上线只要一两天,所以你自己就是项目经理”,问题是我们又没有项目经理那种权利,如何去和高高在上的产品抗衡呢?架构设计就更别谈了,无奈我们只能天天加班处理故障

    作者回复: 不一定要有专门的人和岗位,但一定要有人明确负责项目和架构,尤其是架构,没人负责就会很快垮掉,大家都是往上堆东西,不管是否合理,也不管后续稳定,这样就最后大家天天处理问题和故障

    2020-11-01
    2
    6
  • 文竹
    文档模板很棒

    作者回复: 源于实战,开箱即用😊

    2018-08-26
    6
  • 胡青
    极客时间第一门学完的课程,在这里要感谢老师

    作者回复: 加油👍

    2020-03-27
    5
收起评论
显示
设置
留言
82
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部