【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

FourSquare 经历两次宕机

  • 2010-10-08
  • 本文字数:860 字

    阅读完需:约 3 分钟

美国东部标准时间 10 月 4 日和 5 日,互联网业界最有名也是最具价值的地理位置服务网站 FourSquare 经历了两次宕机事件,第一次长达 11 个小时,第二次也有 6 个小时。第一次宕机问题解决之后,FourSquare 技术团队在官方博客上发布帖子“这一次可真是郁闷了”,详细描述了该次发生问题的全过程。

FourSquare 使用 MongoDB 作为后台数据存储,他们保存了海量的用户签到(check-in)记录,并且使用用户 ID 对数据进行了分片(sharding),希望数据可以平均分布到不同的数据库片(shard)之中。4 日上午 11 时开始,FourSquare 发现某一个数据库片的写入操作出现异常,在接下来的一个半小时,他们采取各种负载均衡措施,均不起效。他们希望引入一个新的数据库片,并在不关闭网站的情况下,将过载的数据库片中的部分数据转移到新的数据库片中。然而,该操作没有成功,同时直接导致整个网站关闭。不仅如此,将数据向新的数据库片迁移也没有腾出原先预期的存储空间数量。(他们认为“数据碎片化”和“使用用户 ID 切分”是两个主要原因。)接下来五个小时的各种努力也没有起效,网站仍然没有起来。

4 日下午 6 时 30 分,他们决定重新建立数据库分片索引,这可以解决内存碎片化和可用性的问题。这个过程耗时 5 个小时。到晚上 11 时 30 分,网站恢复。而且由于他们之前做了足够的安全保障和备份工作,没有任何数据丢失。

FourSquare 团队在该帖子中提到,将会采取三种措施避免类似状况:

  1. 进一步与 MongoDB 的开发者们密切合作。
  2. 改变运维流程,防止过载发生。
  3. 寻找服务降级的方法,关闭某些服务,以避免整个网站全部受影响宕机。

然而,刚刚过了几个小时,FourSquare 再次经历了第二次宕机⋯⋯

最新的博客帖子这样说明第二次发生问题的过程:

简单来说,还是发生了同样的事情:数据库过载,解决方案还是手动重新分配用户签到数据,以确保没有数据库过载,然后重启网站;在将近 6 个小时之后,我们终于恢复了服务。

除了 FourSquare 自己的讲述之外,MongoDB 的开发公司 10gen 的 CTO 和联合创始人 Eliot Horowitz 也分析了整个过程,请关注 InfoQ 对于该事件的后续报道。

2010-10-08 04:204188
用户头像

发布了 479 篇内容, 共 151.7 次阅读, 收获喜欢 47 次。

关注

评论

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

湘江鲲鹏加入昇腾万里伙伴计划,与华为续写合作新篇章

Geek_2d6073

玩转gRPC—深入概念与原理

海风极客

gRPC 网络协议 后端开发

【Docker 那些事儿】容器为什么傲娇?全靠Hub撑腰

Albert Edison

7月月更

后CentOS时代的操作系统漫谈

冯骐

centos 开源 openEuler 国产化 Anolis

使用 BlocConsumer 同时构建响应式组件和监听状态

岛上码农

flutter ios 安卓 移动端开发 7月月更

【算法社区】训练准备和复杂度分析

小明Java问道之路

数据结构 算法 LeetCode 7月月更 算法社区

【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用

愚公搬代码

7月月更

关于栈区、堆区、全局区、文字常量区、程序代码区

NewBoy

前端 移动端 iOS 知识体系 7月月更

OpenHarmony资源管理详解

坚果

HarmonyOS OpenHarmony 6月月更

服务线上治理

阿泽🧸

微服务 7月月更

牛客java选择题每日打卡Day6

京与旧铺

7月月更

Vuex(三)

小恺

7月日更

蓝队攻防演练中的三段作战

穿过生命散发芬芳

攻防演练 7月月更

认识ThreadPoolExecutor

zarmnosaj

7月月更

HUAWEI nova 10系列发布 华为应用市场筑牢应用安全防火墙

最新动态

可观测|时序数据降采样在Prometheus实践复盘

阿里巴巴云原生

阿里云 云原生 Prometheus 可观测

图解网络:什么是网关负载均衡协议GLBP?

wljslmz

网络协议 7月月更 GLBP 图解网络 网关负载均衡协议

Qemu Linux

贾献华

7月日更 7月月更

TLA+ 入门教程(1):形式化方法简介

多颗糖

分布式系统 TLA+

浅聊一下中间件

为自己带盐

中间件 7月月更 dotnetcore

质量体系建设之路的分分合合

声网

创业讲堂 生态专栏

跨域请求

Jason199

跨域 7月月更

可视化任务编排&拖拉拽 | Scaleph 基于 Apache SeaTunnel的数据集成

Apache SeaTunnel

数据同步 数据集成 可视化开发 数据集成平台 拖拉拽

能源势动:电力行业的碳中和该如何实现?

脑极体

leetcode 72. Edit Distance 编辑距离(中等)

okokabcd

LeetCode 动态规划 算法与数据结构

算法入门很简单:链表题套路及精选题目

宇宙之一粟

链表 7月月更

广电五舟与华为签署合作协议,共同推进昇腾AI产业持续发展

Geek_2d6073

2022-Java后端工程师面试指南-(Java基础篇)

自然

Java’ 7月月更

繁华落尽、物是人非:个人站长该何去何从

石头IT视角

HPDC智能基座人才发展峰会随笔

乌龟哥哥

7月月更

C语言中sizeof操作符的坑

Albert Edison

c++ C语言 7月月更 sizeof

FourSquare经历两次宕机_架构_郑柯_InfoQ精选文章