写点什么

如何避免 GitHub 那样断网 43 秒瘫痪 24 个小时?

  • 2019-08-30
  • 本文字数:862 字

    阅读完需:约 3 分钟

如何避免GitHub那样断网43秒瘫痪 24 个小时?

小蚂蚁说:

蚂蚁金服自研的金融级分布式关系型数据库 OceanBase 的高可用及容灾能力在发生城市级故障时,让系统秒级完成智能切换,实现自愈,用户的资金、数据 0 丢失。


今日,GitHub 技术负责人 Jason Warner 的一篇技术深度解析稿成为 IT 圈爆款。文中,Jason 坦诚地对外讲述了 10 月 21 日 100G 光缆设备故障后,Github 服务降级的应急过程以及反思总结。


从 Jason Warner 的文章中不难看出,造成断网 43 秒瘫痪 24 小时的罪魁祸首是数据库。由于部署在两个数据中心的数据库集群没有实时同步。意外发生时,Github 的工程师担心数据丢失,不敢快速将主数据库安全切换到东海岸的备份数据中心。



程序员们在 GitHub 这篇“忏悔录”下面留言,表达对数据库集群的“哀悼”。但更多 IT 从业者关心的问题是,如何避免这样的灾难事件降临到自己的公司,自己维护的系统。


蚂蚁金服 OceanBase 分布式数据库专家认为,此次 Github 事件是典型的城市级故障。如果系统采用的是高可用的三地五中心解决方案,就可以自如应对。


就在一个月前,今年的杭州云栖大会上,蚂蚁金服副 CTO 胡喜现场模拟剪断支付宝近一半的服务器光缆。只用了 26 秒,模拟环境中的支付宝就完全恢复了正常,这背后即是 OceanBase 城市级别故障的自愈能力。



原来,Github 类似银行采用的传统数据库两地三中心模式,即“主库(主机房)+同城热备库(同城热备机房)+异地灾备库(异地灾备机房)”。这种方式下通常只有主机房的服务器能提供写服务。如果主城市出现城市级故障,灾备城市的数据库虽然可以工作,但由于没有同步的最新数据,因此灾备库的数据是有损的。


但在三地五中心部署下,任何单个城市故障,OceanBase 都不会停止服务,数据也不会有任何损失。


Github 表示,为了保证数据完整性,他们不得不牺牲恢复时间。其实,这个问题采用三地五中心方案可以更好的应对。城市故障时,OceanBase 只要活着的两个城市的三个机房两两之间能够通信,就可以正常服务,也不会有任何的数据损失。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/29cwS71iKVLhZ_6YgS-rRQ


2019-08-30 16:023550
用户头像

发布了 150 篇内容, 共 34.0 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

详解CAN总线:高速CAN总线和低速CAN总线的特性

不脱发的程序猿

汽车电子 ISO 11898 高速CAN总线 低速CAN总线 CAN总线

算法之“杨辉三角”题解

掘金安东尼

算法 前端 8月月更

英伟达首席科学家:深度学习硬件的过去、现在和未来

OneFlow

机器学习 深度学习 硬件

揭秘百度智能测试在测试分析领域实践

百度Geek说

测试 数据 用例

每日一R「13」数据结构(四)闭包

Samson

学习笔记 8月月更 ​Rust

DDD实战(12-终篇):DDD下微服务的“分分合合”及一个倡议

深清秋

DDD 软件架构 8月月更

翻译|使用 StatefulSet 运行数据库应用

RadonDB

数据库 Kubernetes RadonDB

Linux常用命令

楠羽

Docker与虚拟化技术浅析第一弹之docker与Kubernetes

京东科技开发者

Docker Kubernetes k8s 虚拟机

详解AUTOSAR:什么是AUTOSAR?(理论篇—1)

不脱发的程序猿

汽车电子 嵌入式开发 AUTOSAR

【算法实践】| 一步步手把手带你实现寻找最小公倍数

迷彩

算法 算法实践 8月月更 最小公倍数

Kubernetes MetalLB 作为 Load Balancer上

CTO技术共享

开源一夏 | 使用layui框架实战之栅格系统和菜单评分组件运用心得

恒山其若陋兮

开源 8月月更

[JS真好玩] 我帮掘金找到了一个小Bug,可利用该Bug增加专栏粉丝数

HullQin

CSS JavaScript html 前端 8月月更

Go-Excelize API源码阅读(十九)——SetHeaderFooter

Regan Yue

Go 开源 源码解析 8月日更 8月月更

GaussDB(DWS)如何实现实时,批量和交付式查询一站式开发

乌龟哥哥

8月月更

呐,HTTP接口安全的八种对策送给你了

知识浅谈

HTTP API 8月月更

公众版与政企版,这两款云电脑我都要!

天翼云开发者社区

云原生 SIG:关于 Koordinator 混部原理及最佳实践 | 第 43 期

OpenAnolis小助手

开源 云原生 混部 sig 龙蜥大讲堂

头脑风暴:回文子串

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

Kubernetes MetalLB 作为 Load Balancer下

CTO技术共享

架构实战营模块五作业

zhihai.tu

租金、物业费的催收困境,如何解决?

IT资讯搬运工

云原生(二十四) | Kubernetes篇之Kubernetes 配置

Lansonli

云原生 k8s 8月月更

短视频软件开发:推荐算法没有想象的那么复杂

开源直播系统源码

直播系统 直播系统源码 短视频直播

电商行业:全链路监测广告投放效果,用数据驱动业务增长

HarmonyOS SDK

分析 电商营销

Kubernetes资源编排系列之五: OAM篇

阿里云大数据AI技术

运维 开放应用模型

图灵8月书讯 | 10 本新书上市,本本精选

图灵社区

新书推荐

面试突击77:Spring 依赖注入有几种?各有什么优缺点?

王磊

Java 常见面试题

汽车电子控制系统的构成

不脱发的程序猿

汽车电子 嵌入式软件 汽车电子控制系统

Kubernetes薅多云羊毛怎么部署

CTO技术共享

如何避免GitHub那样断网43秒瘫痪 24 个小时?_文化 & 方法_Geek_cb7643_InfoQ精选文章