【51】分布式计算:如果所有人的大脑都联网会怎样?

news2025/7/24 8:00:07

【计算机组成原理】学习笔记——总目录

【51】分布式计算:如果所有人的大脑都联网会怎样?

  • 引言
  • 一、从硬件升级到水平扩展
  • 二、理解高可用性和单点故障
  • 三、总结【个人总结的重点】

引言

现在我们每天在用的个人 PC、智能手机,乃至云上的服务器,都是这样一台计算机。

但是,一台计算机在数据中心里是不够的。因为如果只有一台计算机,我们会遇到三个核心问题。

  • 第一个核心问题,叫作垂直扩展和水平扩展的选择问题
  • 第二问题叫作如何保持高可用性(High Availability)
  • 第三个问题叫作一致性问题(Consistency)
  • 围绕这三个问题,其实就是我们今天要讲的主题,分布式计算

我们今天这一讲的目标,是让你能理解水平扩展、高可用性这两个核心问题
对于分布式系统带来的一致性问题,我们会留在我们的实战篇里面,再用案例来为大家分析。

一、从硬件升级到水平扩展

(1)把自己的网站部署在这台服务器:
最低的配置差不多是 1 个 CPU 核心、3.75G 内存以及一块 10G 的 SSD 系统盘。这样一台服务器每个月的价格差不多是 28 美元。

(2)网站很受欢迎,需要升级服务器,两个选择:

  • 第一个选择是升级现在这台服务器的硬件,变成 2 个 CPU 核心、7.5G 内存。这样的选择我们称之为垂直扩展(Scale Up)
  • 第二个选择则是我们再租用一台和之前一样的服务器。于是,我们有了 2 台 1 个 CPU 核心、3.75G 内存的服务器。这样的选择我们称之为水平扩展(Scale Out)

在这个阶段,这两个选择,从成本上看起来没有什么差异。2 核心、7.5G 内存的服务器,成本是 56.61 美元,
而 2 台 1核心、3.75G 内存的服务器价格,成本是 57 美元,这之间的价格差异不到 1%。

(3)最终选择水平扩展
不过,垂直扩展和水平扩展看似是两个不同的选择,但是随着流量不断增长。到最后,只会变成一个选择。那就是既会垂直扩展,又会水平扩展,并且最终依靠水平扩展,来支撑 Google、Facebook、阿里、腾讯这样体量的互联网服务。

垂直扩展背后的逻辑和优势都很简单。一般来说,垂直扩展通常不需要我们去改造程序,也就是说,我们没有研发成本。那为什么我们最终还是要用水平扩展呢?你可以先自己想一想。

【答案】
原因其实很简单,因为我们没有办法不停地去做垂直扩展。我们在 Google Cloud 上现在能够买到的性能最好的服务器,是 96 个 CPU 核心、1.4TB 的内存。如果我们的访问量逐渐增大,一台 96 核心的服务器也支撑不了了,那么我们就没有办法再去做垂直扩展了。这个时候,我们就不得不采用水平扩展的方案了。

96 个 CPU 核心看起来是个很强大的服务器,但是你算一算就知道,其实它的计算资源并没有多大。你现在多半在用一台 4 核心,或者至少也是 2 核心的 CPU。96 个 CPU 也就是 30~50 台日常使用的开发机的计算性能。而我们今天在互联网上遇到的问题,是每天数亿的访问量,靠 30~50 台个人电脑的计算能力想要支撑这样的计算需求,可谓是天方夜谭了。

(4)改造软件:分布式计算【基于消息传递设计系统】
然而,一旦开始采用水平扩展,我们就会面临在软件层面改造的问题了。也就是我们需要开始进行分布式计算了。我们需要引入负载均衡(Load Balancer)这样的组件,来进行流量分配。我们需要拆分应用服务器和数据库服务器,来进行垂直功能的切分。我们也需要不同的应用之间通过消息队列,来进行异步任务的执行。

在这里插入图片描述所有这些软件层面的改造,其实都是在做分布式计算的一个核心工作,就是通过消息传递(Message Passing)而不是共享内存(Shared Memory)的方式,让多台不同的计算机协作起来共同完成任务。

而因为我们最终必然要进行水平扩展,我们需要在系统设计的早期就基于消息传递而非共享内存来设计系统。即使这些消息只是在同一台服务器上进行传递。

事实上,有不少增长迅猛的公司,早期没有准备好通过水平扩展来支撑访问量的情况,而一味通过提升硬件配置 Scale Up,来支撑更大的访问量,最终影响了公司的存亡。最典型的例子,就是败在 Facebook 手下的MySpace。

二、理解高可用性和单点故障

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

三、总结【个人总结的重点】

  • 本文读起来比较容易,大致知道怎么回事儿就行
  • 数据中心的服务器会遇到三个核心问题【对应解决:分布式计算】:
    • 垂直扩展和水平扩展的选择问题
    • 如何保持高可用性(High Availability)【尽可能排除单点故障+自动化故障转移策略
    • 一致性问题(Consistency)【本节没讲】

【计算机组成原理】学习笔记——总目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/7647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx反向代理配置

关键字: 反向代理,负载均衡 第一步:官网下载windwos版本nginx 下载地址链接:nginx: download 如下图所示 第二步:解压启动nginx 备注:启动前先查看进程是否占用 80端口 netstat ano | findstr 80tasklist |findstr “…

linux下Nerdtree安装方法

目录 1.下载Nerdtree 2. linux下安装 3. 成功享受吧 1.下载Nerdtree 百度网盘下载,地址为链接:百度网盘 请输入提取码 提取码:07e3 --来自百度网盘超级会员V4的分享 github方式下载,地址为 https://github.com/scrooloose/ner…

【附源码】Python计算机毕业设计蔬果批发网络平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

HECTF2022 学习笔记

HECTF2022 MISC笔记 目录HECTF2022 MISC笔记小鲨鱼来喽~舞者的秘密你把我的flag藏哪去了。。小鲨鱼来喽~ 查看最后面的http数据包,发现flag 舞者的秘密 先爆破出压缩包密码,用010打开,发现文件开头是gif的格式 将图片格式改为gif&#xf…

Mysql之常用函数、聚合函数合并(unionunion all)【第四篇】

大纲: 1、函数的简介 MySQL函数是 MySQL 数据库提供的内部函数,这些内部函数可以帮助用户更加方便地处理表中的数据。函数就像预定的公式一样存放在数据库里,每个用户都可以调用已经存在的函数来完成某些功能。 简单来说,函数就是…

Sublime Text v4.0(4143)破解方法

[TOC](Sublime Text v4.0(4143)破解方法) 版本Sublime Text v4.0(4143) 所需软件 Sublime Text v4.0(4143)下载地址:https://www.sublimetext.com/download_thanks?targetwin-x64 010 Editor下载地址(其他十六进制编辑器也可以) https://download.sweetscape.co…

基于ISO13209(OTX)实现EOL下线序列

一 OTX是什么? OTX,全称Open Test sequence eXchange format,即开放式测试序列交换格式,国际标准:ISO13209,是专为汽车行业制定的序列开发标准。在车辆诊断、自动化标定和ECU测试等领域有广泛应用。OTX不仅…

使用Jmeter进行性能测试的操作方法

前言 JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试, 下载地址: Apache JMeter - Download Apache JMeter 下载好之后 ,他得需要 jdk配置 好环境变量 才能运行。 这是很重要的一点, 。 安装 一系…

高数 |【23数一 李林六套卷】卷二 自用思路 及 知识点 整理

23数一 李林六套卷 —— 自用思路 及 知识点 整理 ——【卷二】 以下均为个人复盘。 部分思路讲解参考于 6-2_哔哩哔哩_bilibili 第二套T22_哔哩哔哩_bilibili T1:泰勒 ※ T2:高阶导 想泰勒展开 或 本题画图 法一:泰勒 法二:画图

哈夫曼树及其应用

一、基本概念 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 ——…

Web前端:如何提高React原生应用性能

React Native拥有大量追随者,从财富500强公司到新的创业公司。开发人员可以使用React Native为IOS和Android上的移动应用程序创建出色的移动UI。 随着React Native的一切进展顺利,它甚至有负面影响吗?是的,确实如此。这是React Native应用程…

整形提升和算术转换

表达式求值 表达式求值的一部分由符号的优先级和结合性决定。 同时,表达式求值一部分也与数据类型的转换有关。 文章目录1.隐式类型转换2.算术转换1.隐式类型转换 C的整数类型运算总是至少以缺省整形类型的精度来进行的。(缺省就是如果程序员没定义函数…

【学习日志】2022.11.11 合同矩阵、惯性指数、委托构造、继承控制、=delete、可变参数模板类

class Info { public:Info() : Info(1) { } // 委托构造函数Info(int i) : Info(i, a) { } // 既是目标构造函数,也是委托构造函数Info(char e): Info(1, e) { }private:Info(int i, char e): type(i), name(e) { /* 其它初始化 */ } // 目标构造函数int type;c…

UD4KB100-ASEMI智能家居专用整流桥UD4KB100

编辑-Z UD4KB100在D3K封装里采用的4个芯片,其尺寸都是72MIL,是一款智能家居专用整流桥。UD4KB100的浪涌电流Ifsm为125A,漏电流(Ir)为10uA,其工作时耐温度范围为-55~150摄氏度。UD4KB100采用光阻GPP芯片材质,里面有4颗…

【POJ No. 3134】幂运算 Power Calculus

【POJ No. 3134】幂运算 Power Calculus POJ 题目地址 【题意】 从x 开始,反复乘以x ,可以用30次乘法计算x^31 平方运算可以明显地缩短乘法序列,以下是用8次乘法计算x^31 的方 法: 这不是计算x^31 的最短乘法序列。有很多方法只…

20221115使用google文档翻译SRT格式的字幕

20221115使用google文档翻译SRT格式的字幕 2022/11/15 18:52 (一)将SRT格式的字幕用WPS转换为DOCX的文档。 (请上传 .docx、.pdf、.pptx 或 .xlsx 文件) https://www.google.com.hk/?gws_rdssl Google 拍照搜索 Google 提供&a…

F - Double Chance(期望,数学,树状数组优化)[AtCoder Beginner Contest 276]

题目如下: F - Double Chance 题目链接 思路 or 题解: 期望公式:∑valp\sum val \times p∑valp 还可以细分: 如果两次抽出的值是相同的,都是 xxx,那么抽出的方案数为 cntxcntxcnt_x \times cnt_xcntx​c…

Allegro 274X格式gerber输出全流程详细介绍

Allegro 274X格式gerber输出全流程详细介绍 下面介绍Allegro gerber输出的全流程介绍 首先把光绘设置好 设置光钻孔精度 会出现对话框,勾选Enhanced Excellon format,点击close 输出钻孔文件,选择Auto Tool select,点击Drill 输出椭圆孔文件,默认设置,然后点击rout…

一套SCDM脚本建模与二次开发攻略

导读:ANSYS SpaceClaim Direct Modeler(简称 SCDM),是基于直接建模思想的新一代3D建模和几何处理软件,摒弃了基于历史的概念建模的约束的概念,让我们轻松完成几何的创建与修改,不会带来传统CAD系…

【附源码】计算机毕业设计JAVA晨光文具店进销存系统设计与开发

【附源码】计算机毕业设计JAVA晨光文具店进销存系统设计与开发 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#xf…