Facebook全球6小时宕机原因已查明:一条指令所致,内部工程师所为

2023-11-10

博雯 发自 凹非寺
量子位 报道 | 公众号 QbitAI

Facebook全球宕机6小时的原因,是公司内部工程师的一条错误指令。

最近,Facebook官方针对这次大规模宕机的原因做了回应。

be83c40b56c97a8b1f9247d8aa3be649.png

这一新闻已经出现在了微博热榜。

fa7444c2ec91192decc97264c926db48.png

而在回复中,官方也(针对各种神奇的假说)强调:

没有黑客恶意攻击行为,用户的数据也没有受到损害。

4ce6ba123d1b1f5ce1714f1b1901961e.png

在第二天,Facebook又发了另一则声明,详细地说明了这次宕机的技术细节。

那么这场Facebook有史以来持续时间最长,规模最大,造成公司股价蒸发百亿的宕机到底是因为什么?

一起来看看。

日常维护切断网络

一切都开始于日常维护中的一条错误指令。

也就是Facebook engineering平台上的声明中所提到的“配置变化”:

协调数据中心之间网络流量的主干路由器的配置变化导致了通信中断,进而影响了数据中心的的通信方式,最后导致了服务中断。

0bbd6191140a33fe3643b6421ebe219c.png

在日常维护网络基础设施时,工程师经常需要离线维护部分主干网,比如修理一条光纤线路,增加更多容量,或者更新路由器本身的软件。

而上面提到的“配置变化”,就是日常维护工作中主要用于检测Facebook主干网络的可用性的一条命令。

当然肯定有应对这种命令的保护措施,但不巧审计工具(audit tool)中出了个bug……

14615a754b752276d09a182afb2cdd73.png

于是,这个“配置变化”就撒着欢儿,啪一下把Facebook主干网络的所有连接都给切断了。

这一断,应用程序对数据的刷新搜索,上传下载等请求就无法从用户设备传到最近的数据中心了。

而这些数据中心不仅有容纳了数百万台存储数据机器,用于支撑平台运行的大型建筑,还有将主干网络连接到更广泛的互联网和具体应用平台的较小设施。

嗯,差不多就是这样的严重性……

5420f6f3309d58f9af0f07a3cd5cc5d3.png

这还没完。

上述数据中心里的小型设施还有一个工作,那就是响应DNS查询。

DNS是互联网的地址簿,能够将浏览器中键入的简单网络名称转换为特定的服务器IP地址。

而这些地址又通过边界网关协议(BGP)向互联网其他地址进行广播,类似一个地图,提供通往各种目的地的线路。

当DNS服务器发现主干网络失去了与互联网的连接时,BGP的“广播”也随之停止。

相当于Facebook短暂地被从互联网这块地图上抹除了存在

只有Facebook受伤的世界完成了

当然,在派遣工程师进入现场数据中心进行修复之后,网络服务也在10月4日下午4点左右逐渐恢复。

e009ce724fd555f333b460afcaa3edda.png

在官方回复的最后,他们也提到会通过这次的“演习”加强系统故障的测试、训练和整体恢复能力。

而纵观这次全球大宕机,不仅国外热度爆表,就连国内也上了热搜。

b5944eb3663ae39de98c95a8317c3a0d.png

国内外的网友们弔图一堆,苦中作乐。

994843c4d8bb817e6e8f77885e980e7e.png

同为社交媒体的Twitter则高傲尽数显现。

47dbe403a2f6c384464013780baf1e74.gif

甚至连Netflix都过来蹭了把热度,顺带了夹杂了新剧宣传私货:

641542d528313d99966b0280be915bdf.png

而Facebook在这次事件中股价暴跌6%,扎克伯格个人财富一日蒸发逾60亿美元。

88f116bc43640a73dbb33ea5bcba47e1.png

现在看来,只有小扎受伤的世界完成了(狗头表情包)。

官方回应:
[1]https://engineering.fb.com/2021/10/04/networking-traffic/outage/
[2]https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Facebook全球6小时宕机原因已查明:一条指令所致,内部工程师所为 的相关文章

  • JavaFX:如何在 JavaFX 中正确使用 ProgressIndicator

    我是 JavaFX 新手 我的 JavaFX 应用程序有问题 我需要在数据库查询之前启动 ProgressIndicator 类型 INDETERMINATE 这是我的代码的一部分 spinner setVisible true passC
  • 如何确定用户是否发送了由Java代码构建的MS Outlook消息?

    在我的程序中 我创建 Outlook exe 进程并发送包含预填充内容的消息 发送消息或关闭消息窗口后 我需要知道用户是否发送消息 exitValue process 方法没有帮助 因为两种情况下的 exitValue 都是 0 Proce
  • 同步 Set 线程的构造函数副本安全吗?

    获取同步版本的最简单方法java util Set将使用Collections synchronizedSet 像这样 Set mySyncSet Collections synchronizedSet new HashSet The Ja
  • 从不同 JVM 中的 Java 桌面应用程序中执行 Java main 方法

    我有一个桌面应用程序 当有人按下按钮时 我希望它启动另一个执行类的 main 方法的 JVM 我的桌面应用程序已经依赖于包含具有我想要执行的 main 方法的类的 jar 目前我有以下代码 但是 我希望它们是一种更优雅的方法 Runtime
  • 如何从 Android 服务获取应用程序上下文?

    我有一个正在运行并监听麦克风输入的 Android 服务 我希望它在满足特定条件时启动一项活动 为了创建意图 我需要应用程序上下文 我怎么才能得到它 Intent i new Intent ctx SONR class i addFlags
  • 在 Java Servlet 应用程序中设置 HTTP 201 响应的 Location 标头的正确方法是什么

    考虑以下代码向客户端发送 HTTP 201 已创建 响应 String url app things id 42 example response setStatus HttpServletResponse SC CREATED respo
  • 动态添加的 RemoteView 上的布局权重

    在我的小部件中 我使用以下内容将项目 R layout widget item 动态添加到我的主小部件布局中定义的 LinearLayout 中 Main widget layout RemoteViews views new Remote
  • 在 Volley 中更新 UI 最有效的方法是什么

    最近我在 android 中使用 Volley 库 它工作得很好 但我想知道更新 UI 的最有效方法 我有一个包含所有 Volley 方法的 Utils 类 现在我传递了所有视图将作为参数更新 但我读到我可以在活动中实现侦听器 然后将它们作
  • Java,根据 WSDL 中的嵌入模式验证 XML

    我有一个 wsdl具有嵌入架构的文件 我想使用它来验证 XML 文件 字符串 wsdl文件 与验证的方式相同 xsd 该架构位于
  • hibernate 如何确保二级缓存使用数据库中的最新数据进行更新

    我读到 使用 hibernate 的二级缓存 它可以通过减少数据 对象检索的数据库命中来提高应用程序性能 但是hibernate是如何保证二级缓存与数据库中的数据是最新的呢 例如 假设下面的类是实体并持久化到数据库中 Entity clas
  • 如何生成0-8范围内除一个特定数字之外的随机数?

    我正在尝试开发 Tic Tac Toe 游戏 其中玩家 1 将单击一个按钮放置 X 稍后玩家 2 计算机 将在第一步中随机将 O 放置到其他按钮 为此 我需要创建一个随机数0 8 之间 除了玩家 1 点击的那个之外 我正在使用以下代码来生成
  • 确定 TCP Listen() 队列中当前积压的连接数

    有没有办法找出currentLinux 上 TCP 套接字上等待 Accept 的连接尝试次数 我想我可以在每个事件循环上点击 EWOULDBLOCK 之前计算成功的 Accept 数量 但我使用的是隐藏这些细节的高级库 Python Tw
  • 使用 Spring Java 配置自动装配 bean

    是否可以使用Spring的 Autowired用 Java 编写的 Spring 配置中的注释 例如 Configuration public class SpringConfiguration Autowired DataSource d
  • [PersistenceUnit:<名称>]:无法构建EntityManagerFactory

    正如主题所述 我的问题是EntityManagerFactory无法建造 我正在使用 Maven Hibernate 我正在连接到 MySQL 数据库
  • 手写签名对比

    有谁知道java中一种将手写文本样本 例如签名 亲笔签名等 与一个或多个样本进行比较的方法 最好是开源的 你可以看看这个OCR小程序 http www heatonresearch com articles 42 page1 html
  • 从字符串中删除特定字符[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何从字符串中删除特定字符 我有一个 Arraylist 测试数组 String line testingarray get index
  • 信号量如何工作?

    信号量可以小于0吗 我的意思是 假设我有一个 N 3 的信号量 并且我调用 down 4 次 那么 N 将保持为 0 但一个进程将被阻塞 反之亦然 如果一开始我调用 N 可以大于 3 吗 因为在我看来 如果 N 可以高于 3 如果一开始我调
  • 为数组生成随机索引

    我知道对于普通整数来说这是这样 但是有索引这样的东西吗 Random dice new Random int n dice nextInt 6 System out println n 你是什 么意思 数组索引是普通数字 所以你可以轻松地做
  • 正确检查 FTP 服务器连接

    我在程序开始时打开与 FTP 服务器的连接 在对服务器执行操作之前 我想检查连接是否已成功建立 最简单快速的方式 因此如果连接消失 我将尝试再次连接 我用这段代码来做到这一点 private boolean checkConnection
  • 为什么 pagefactory 类在从另一个类初始化时返回 null

    在我的测试课上 我有DesiredCapabilities为 Appium 测试设置 在该课程中 我初始化了 BasePage 课程pagefactory元素 当我运行测试时 它按预期工作 现在 我尝试将 DesiredCapability

随机推荐

  • fftw3/gsl/kissfft/OouraFFT库中傅里叶变换/反傅里叶变换函数和Matlab中的fft/ifft的对应关系

    先分析一维度的 一 fftw plan dft 1d 正变换 fftw complex in fftw malloc sizeof fftw complex n fftw complex out fftw malloc sizeof fft
  • 如何用Flask和Redis来动态维护Cookies池

    为什么要用Cookies池 目标网站需要登录才能爬取 例如新浪微博 爬取过程中 如果请求频率过高 会导致封号 这就需要维护多个账号的Cookies池实现大规模爬取 Cookies池的要求 自动登录更新 定时验证筛选 提供外部接口 Cooki
  • 如何使用JAVA获取当前环境下的MAC地址

    在Windows下很简单直接运行脚本命令就可以了 public static String getMac try Process process Runtime getRuntime exec cmd exe c ipconfig all
  • 2023,8种必备Selenium编写自动化用例的技巧!

    在开始自动化时 您可能会遇到各种可能包含在自动化代码中的方法 技术 框架和工具 有时 与提供更好的灵活性或解决问题的更好方法相比 这种多功能性导致代码更加复杂 在编写自动化代码时 重要的是我们能够清楚地描述自动化测试的目标以及我们如何实现它
  • SPADE阅读笔记

    SPADE阅读笔记 目录 SPADE阅读笔记 作者的方法 spatial adaptive denormalization SPADE generator 为啥SPADE work better 同样的 作者提出一个simplt but e
  • 分巧克力(蓝桥杯C/C++B组真题详解)

    目录 题目 编辑 题目思路 代码详解 题目 题目思路 因为答案唯一 且分布在一个区间里面 我们可以想到二分答案 直到找到最小的满足的条件的 合适答案 代码详解 include
  • JavaScript的运算符

    目录 一 算术运算符 1 优先级 2 模运算 3 4 自增 5 自减 二 关系运算符 比较运算符 三 逻辑运算符 1 逻辑与 2 逻辑或 3 逻辑非 四 赋值运算符 1 格式 2 要求 3 复合赋值运算符 五 位运算符 1 按位与 2 按位
  • edp和edt哪个好_香水edt和edp什么意思 香水等级分类说明

    这次引发我写这篇小科普的灵感 是因为我恰巧看到一个文在各种溢美之词地推荐一款售价过千的EDT小众香水 EDT留香很短 卖价过千让我实在有点难接受 现在安利香水的推文随处可见 但发现不少只是一个劲地赞美多好闻 却连最基本的香水等级分辨都没好好
  • java 日志时间错误

    java 时区错误 解决方法 问题 参考链接 电脑上所有 java 应用 项目时间都不对 核心业务系统启动后日志时间和当前系统时间差11个小时30分钟 电脑用的是云桌面系统有严格的权限控制 找相关人和同事弄了几次没好 都知道是时区问题 但没
  • Vue3-wangeditor富文本编辑器的使用

    wangeditor官网 用于 Vue React wangEditor开源 Web 富文本编辑器 开箱即用 配置简单https www wangeditor com v5 for frame html vue3 按照官网提示安装 两个都要
  • 【Linux】Linux中的gcc/g++编译器的使用

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 编译的过程 1 预处理阶段 1 1预处理的工作 头文件
  • 如何让2008服务器访问所有网页,Windows Server 2008 R2 下配置证书服务器和 HTTPS 方式访问网站...

    Windows Server 2008 R2 下配置证书服务器和 HTTPS 方式访问网站 实验准备 一台 Windows server 2008 r2 的虚拟机 实验目的 为什么要用 HTTPS 实验步骤 1 配置 CA 证书服务器 1开
  • Android Studio 的原生输入框控件 EditText 属性配置详解

    Android Studio 的原生输入框控件 EditText 属性配置详解 文本设置 android hint 默认文本设置 android textColorHint 95A1AA 默认文本颜色 android textColorHi
  • 论文笔记:N-BEATS: NEURAL BASIS EXPANSION ANALYSIS FORINTERPRETABLE TIME SERIES FORECASTING

    ICLR 2020 0 摘要 本文重点研究了利用深度学习解决单变量时间序列点预测问题 我们提出了一种基于后向和前向残留链路和一个非常深的全连接层堆栈的深度神经结构 该体系结构具有许多令人满意的特性 这些特性是可解释的 适用于广泛的目标领域而
  • Mybatis简介及其快速入门及其映射文件详解

    一 Mybatis简介 1 1原始jdbc操作 查询数据 1 2原始jdbc操作 插入数据 1 3 原始jdbc操作的分析 原始jdbc开发存在的问题如下 数据库连接创建 释放频繁造成系统资源浪费从而影响系统性能 sql 语句在代码中硬编码
  • Xilinx平台SRIO介绍(汇总篇)

    用最简单直白的语言记录复杂的FPGA设计 FPGA大叔 沃自己硕得 目录 前言 一 SRIO扫盲篇 RapidIO协议介绍 二 Xilinx平台SRIO IP核基础知识 三 SRIO时钟与复位 四 SRIO IP核配置使用教程 五 示例工程
  • 四旋翼无人机学习第4节--STM32、MPU9250等器件的绘制

    注意 本博客主要是复现小马哥四轴 即从画板 焊接 0 前言 当画stm32 mpu9250这种多引脚的芯片 就需要参考芯片手册啦 这里给大家推荐一个芯片手册查询网站 半导小芯 芯片查询工具 进入网站 输入芯片的具体名称 点击查询即可 最后点
  • 使用Maven构建微服务项目踩过的坑及学习心得(持续更新)

    前言 本文为个人在学习微服务架构的过程中的心得汇总 以便于自己未来回看和帮助其他遇到同样的问题的同学 初学者 敬请包涵 该文会随着学习阶段的深入不断改进和更新 1模块构建 1 1整模块打包 直接在微服务项目根目录下输入mvn clean i
  • wazuh 原理分析之Syscollector 系统信息收集工作流程

    wazuh是从ossec hids衍生过来的 部分架构设计有所不同 多进程多线程模式 本机的进程之间通过Unix domain socket 进行通信的 今天简单介绍一下数据搜集的相关功能的实现 Linux系统 注意由于篇幅所限 在函数中我
  • Facebook全球6小时宕机原因已查明:一条指令所致,内部工程师所为

    博雯 发自 凹非寺量子位 报道 公众号 QbitAI Facebook全球宕机6小时的原因 是公司内部工程师的一条错误指令 最近 Facebook官方针对这次大规模宕机的原因做了回应 这一新闻已经出现在了微博热榜 而在回复中 官方也 针对各