• 干货!阿里「大型分布式技术手册」,站在巨人肩膀上学习架构


    怎么去定义大型网站

    满足一个大型网站的基本因素:

    • 访问量

    • 业务复杂度

    • 数据量

    大型网站常用到的技术框架

    初始阶段的网站架构

    一般来讲,大型网站都是从小型网站发展而来,一开始的架构都比较简单,随着业务复杂和用户量的激增,才开始做很多架构上的改进。当它还是小型网站的时候,没有太多访客,一般来讲只需要一台服务器就够了,这时应用程序、数据库、文件等所有资源都在一台服务器上,网站架构如下图所示:

    应用服务和数据服务分离

    随着网站业务的发展和用户量的增加,一台服务器就无法再满足需求了。大量用户访问导致访问速度越来越慢,而逐渐增加的数据也会导致存储空间不足。这时就需要将应用和数据分离,应用和数据分离后整个网站使用 3 台服务器:应用服务器、文件服务器和数据库服务器。这 3 台服务器对硬件资源的要求各不相同:

    • 应用服务器业务逻辑,需要强大的CPU

    • 数据库服务器对磁盘读写操作很多,需要更快的磁盘和更大的内存

    • 文件服务器存储用户上传的文件,因此需要更大的磁盘空间

    此时,网站系统的架构如下图所示:

    我们来思考一个问题:构建一个大规模但依然可靠的软件系统,是否可行?

    如何构建可靠的大型分布式系统

    其实当你真正去使用这些不同的架构方法去解决问题,然后在实践中观察它们的优劣,这确实会是一种很好的成长方式,但这是一个漫长的过程,而且没有哪个大厂会花时间让你自己去探索,所以这些经验又要从哪儿来呢?

    答案是:前人的经验。既然别人已经总结了一套通过实践得来的经验,那我们为什么不去用呢?将别人的知识学会再变为自己的,才叫厉害。

    这份在 GitHub 暴涨 4W 下载量的大型分布式技术手册,就可以作为大家学习的资料。这份手册是一位阿里大佬写的,他将自己掌握的知识条理清晰地叙述出来,让人听得明白,学得深刻,连阿里内部员工看了都会收藏一份。不如我们一起来看一下这份技术手册吧

    阿里分布式技术手册

    这份手册分为五个部分,每一部分都有明确的主题与目标,可以按顺序学,也可以跳过你不感兴趣的部分。不过篇幅有限,下面我就一截图的形式展示吧

    第一部分 演进中的架构

    • 第 1 章 服务架构演进史

    第二部分 架构师的视角

    • 第 2 章 访问远程服务

    • 第 3 章 事务处理

    • 第 4 章 透明多级分流系统

    • 第 5 章 架构安全性

    第三部分 分布式的基石

    • 第 6 章 分布式共识

    • 第 7 章 从类库到服务

    • 第 8 章 流量治理

    • 第 9 章 可靠通信

    • 第 10 章 可观测性

       

    第四部分 不可变基础设施

    • 第 11 章 虚拟化容器

    • 第 12 章 容器间网络

    • 第 13 章 持久化存储

    • 第 14 章 资源与调度

    • 第 15 章 服务网格

       

    第五部分 技术方法论

    • 第 16 章 向微服务迈进

       

    附 技术演示工程实践+ 部署 Kubernetes 集群

    总结

    这份技术手册不仅能告诉你某个技术点怎么做、为什么这么做,还会让你明白所有技术点如何协同配合,最终构建出一个完整的技术体系。相信大家认真钻研此手册的话,必定能在架构能力方面得到如凤凰涅槃般的升华。

  • 相关阅读:
    什么是自动化测试?如何开展自动化测试你需要知道这些点
    Xilinx ISE系列教程(7):QSPI编程文件的生成和烧录
    (matplotlib)如何让各个子图ax大小(宽度和高度)相等
    容器化 | 在 Rancher 中部署 MySQL 集群
    大厂真题:【链表】大疆2023秋招-链表合并
    【jmeter+ant+jenkins】之搭建 接口自动化测试平台
    `英语` 2022/8/15
    Mybatis-Plus 0基础光速入门代码
    Microsoft Visual Studio—常用快捷键
    docker安装nexus3并配置统一前缀url prefix
  • 原文地址:https://blog.csdn.net/LBWNB_Java/article/details/127566809