阅读255 返回首页    go 阿里云 go 技术社区[云栖]


鹿晗关晓彤公开恋情,是如何把新浪微博的服务器搞垮的?

为什么客户端刷新、评论这些功能挂了?原因是什么?数据量过大吗?

(不关我们的事.jpg)

1

洛神赋

数据分析,顶级流量无疑。

微博覆盖用户超8亿人次。

热搜相关霸占20+,6个爆。

淘宝搜索鹿晗。

此外,鹿晗公布恋情全世界都知道了。

全球趋势第7。

韩国KBS的推特。

日本热搜趋势第二。

韩国热搜第一。

法国:

越南:

中央出来安慰大家:

知乎1小时出121道新题,以下是不完全截图。

2

匿名用户

据目前已有的信息猜测是数据库被压垮了,先发猜想,稍后写个程序分析当时的点赞评论转发数据验证猜想。

微博这样的网站,如果被大流量压垮,不太可能是非必需字段没有容错。之前经历过几次热门事件,我相信在爆发热点新闻的时候,微博会暂时牺牲一点数据准确性来保证关键服务可用。也就是说,光读请求很难压垮微博。

根据事故时的微博点赞数、转发数、评论数、评论的回复数、评论的点赞数、转发的评论转发点赞数等的量,微博极可能是由于事发当时需要写入数据库的请求太多(写行为峰值可能达到了几十万甚至更高),以及大部分写都会落到同一条微博上,而且某些写操作还需要触发相应的其他写行为(回复评论需要通知评论者、点赞需要进关注者 feed 等),数据库压力过大扛不过来,最终跪了一会儿。其实如果缓存做好,这时候还是可以满足核心数据读请求的(当然微博缓存做的并不好,我微博个人页数据错误很久了反馈也没用)。如果数据库压力过大时对部分写请求异步化,或者考虑暂时抛弃部分请求换取稳定性,当然这样也各有利弊,不一定是好的。

可以抓取当时鹿晗发的微博的所有评论转发回复点赞的时间,看下故障前几秒成功的写行为究竟有多少。

不负责任的未经验证的猜测(画图水平有限,省略了部分过程,但是从上下两个过度的箭头数,大致表达了很多请求是读且未压到数据库,将就看吧[手动捂脸.jpg]):

3

石桥码农

原来中国最厉害的黑客在娱乐圈啊。

微博团队说,临时加了1千台服务器,也就用了几个小时。

每台按使用4小时计算,2核,1GB基础流量,约合3元,这1000台也仅3000+的费用。

有人说,“是数据库被压垮了”,其实不是。数据库的吞吐量远大于web server。

有人说,是“bin log忘记清理”,也不是了,这种分布式大系统都有自动清理机制,否则人工清理将是噩梦啊。

有人说,是因为“微博自动扩容的算法没写好”,这是不对的,恰是因为自动扩容的算法写的太好了,才有了这次灾难。如果流量短时间内暴涨的太历害,稍做Delay几百毫秒,灾情就会过去;如果反应非常灵敏,流量上来了马上扩容增机,很快服务器集群池就会耗净。等到最后一台服务器被100%征用后,任何一个用户的回复就成了压倒骆驼的最后一根稻草,一个服务器跨了,流量迅速压向其它服务器,引发多米诺骨牌效应,服务器们指数级迅速宕下。

所以说,恰是因为微博分布式系统的自我扩容机制太好了,所以才有了这次灾难。鹿晗发微,仅是外因。

经此一役,程序员圈无人不知鹿黑客;

经此一役,微博再不敢低估鹿饭们的能量,明天马上开会扩大服务器备用空间;

经此一役,风潇潇兮易水寒,以后,明星以挤跨微博为荣,试问国内,谁还能刷新鹿黑客的记录,像票房一样,拭目以待...

4

瑾儿

程序猿单身那么多,好不容易挑个好日子结婚。边结婚边写代码……

5

Yang magic

常见的web攻击有哪些?

答案:DDoS, XSS,SQL注入,公布恋情。

6

求真之理

一次成功的热度,当然要炸一个服务器祭天了。

最后更新:2017-10-11 13:24:41

  上一篇:go 鹿晗宣布恋情,网友:今天我们都是关晓彤
  下一篇:go 揭秘:鹿晗不是男人的三条实锤,关晓彤只不过是鹿晗的挡箭牌