加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

鹿晗和关晓彤是如何联手搞垮新浪微博服务器的?

发布时间:2017-10-12 13:14:03 所属栏目:建站 来源:51CTO
导读:副标题#e# 不知不觉,美好的十一假期已经结束了。在假期的最后一天,大约有四千万人同时失恋,我们迎来了 2017 年度最大甜蜜暴击! 鹿晗在新浪微博高调宣布了自己的新恋情,并大方的@了女朋友关晓彤。消息一出, 微博立马就炸了。 短短几个小时之后,该条微

大概是微博自动扩容的算法没写好,或者没敢全交给算法来做。比如你发现流量升高了,自动下单加几十台服务器能接受,突然加一千台要是程序出 Bug 的话微博得白支出多少钱啊……多半是这个量级的扩容需要运维手工来确认。

而且是在长假最后一天的中午爆发的,不是访问高峰期,服务器也准备不足。明星公布恋情这件事又没法预警,谁知道他们啥时候心血来潮忽然介绍女朋友啊……

知友(400+ 赞)

根据目前已有的信息猜测是数据库被压垮了,先发猜想,稍后写个程序分析当时的点赞评论转发数据验证猜想。微博这样的网站,如果被大流量压垮,不太可能是非必需字段没有容错。

之前经历过几次热门事件,我相信在爆发热点新闻的时候,微博会暂时牺牲一点数据准确性来保证关键服务可用,也就是说,光读请求很难压垮微博。

根据事故时的微博点赞数、转发数、评论数、评论的回复数、评论的点赞数、转发的评论转发点赞数等的量,微博极可能是由于事发当时需要写入数据库的请求太多(写行为峰值可能达到了几十万甚至更高),以及大部分写都会落到同一条微博上,而且某些写操作还需要触发相应的其他写行为(回复评论需要通知评论者、点赞需要进关注者 feed 等),数据库压力过大扛不过来,最终跪了一会儿。

其实如果缓存做好,这时候还是可以满足核心数据读请求的(当然微博缓存做的并不好,我微博个人页数据错误很久了反馈也没用)。

如果数据库压力过大时,对部分写请求异步化,或者考虑暂时抛弃部分请求换取稳定性,当然这样也各有利弊,不一定是好的。

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

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

鹿晗和关晓彤是如何联手搞垮新浪微博服务器的?

知友:佚名(150+ 赞)

让我放两张来自微博后台数据的图片:

鹿晗和关晓彤是如何联手搞垮新浪微博服务器的?

这样看可能不是很直观?

鹿晗和关晓彤是如何联手搞垮新浪微博服务器的?

没有对比就没有伤害啊!关晓彤热议趋势硬生生涨了 1122.9%,社会社会!

鹿晗和关晓彤是如何联手搞垮新浪微博服务器的?

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读