鹿黑客是如何击垮微博服务器的?
2017/10/9 13:37:14 浅黑科技

     “服务器稳定了,岳父喊我喝酒去……” 敲下这几个字,小丁松了一口气。

     戴着新郎胸花,结婚当天加班,滋味不一般。

    

     几十分钟前,他接到公司电话,被告知服务器可能遭遇大量流量涌入,瘫痪。

     这位年轻的技术小哥放下酒杯,淡定地推了推镜框,从双肩包里抽出电脑,顾不上背后亲友们的惊愕,飞速敲打起来。

    

     没有时间解释了!此时网络的另一端,是千万网友心急如焚的等待。微博服务器挂,客服发出紧急公告:

     目前客户端无法正常刷新、评论等多个页面无法正常显示的问题,工程师已在排查……

     “排查个毛啊”,微博CEO王高飞忍不住吐槽。

    

     事实证明,激增的流量并不是来自黑客攻击,所有线索指向一条微博:

    

     没错,只一条微博,就让数亿网民一定时间内无法正常使用自己的微博APP,只一条微博,就让承载月活3亿多用户的微博服务器崩了。

     那么问题来了,为什么明星公开恋情,程序员小哥遭殃?为什么一条微博就把服务器搞瘫了?服务器瘫痪之后又发生了什么?来,看看他们怎么说:

     Let’s Rock !

     1.一言以蔽之:挤的。由于原理和黑客发起的DDoS攻击类似,因此这次事件崩溃被称之为“鹿黑客发起的人肉DDoS攻击”。

     @徐怀远,工程师

     100个座的餐馆,平时高峰期才50个人,伙计又准备了100个可以临时搭建的餐位,就算来200个人也可以挤一挤,伙计吹牛说来500个也小意思,结果来了1000个强行挤进店的客人,于是连餐桌上都站满了人。

    

     在应对流量比平时峰值高一个数量级的事件时,一定要有计划有作战方案,阿里的双十一,如果不是提前那么多天备战和演练,给他来个突发的,一样药丸。

     这种事情不是一方努力可以做好的,云计算也不是说扩容就能几分钟内扩容完,你突然要求几分钟内新增1000个主机,对云服务商也是很大的考验。

     况且,大家都在放假,开发和运维就那么几个人值班,你看阿里双十一上千人严阵以待,守个通宵,可见准备工作和人海是多么重要。

     2.猜测:一条微博具体是怎么把微博压垮的?

     @知乎匿名网友

     根据目前已有的信息猜测是数据库被压垮了。

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

    

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

     根据事故时的微博点赞数、转发数、评论数、评论的回复数、评论的点赞数、转发的评论转发点赞数等的量,微博极可能是由于事发当时需要写入数据库的请求太多(写行为峰值可能达到了几十万甚至更高)。

     以及,大部分写都会落到同一条微博上,而且某些写操作还需要触发相应的其他写行为(回复评论需要通知评论者、点赞需要进关注者 feed 等),数据库压力过大扛不过来,最终跪了一会儿。

     3.解决:阿里云免费提供一千台服务器扩容,用了几个小时后又退了。

     根据微博CEO王高飞的说法,事情发生后,微博临时加了一千台阿里云服务器抗住短时间内的流量压力,用了几个小时,访问量降下来之后就把服务器退了。

     由于事件传播范围广,阿里云还顺带给微博免了个单,权当是打了个广告。

    

     细心的网友还算了一笔账,发现解决微博解决问题租用的服务器并没花多少钱。

     @石桥码农

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

    

     此次鹿晗公开恋情微博带来的网络流量若发生在工作日,想必对于微博的网络架构和扩容能力来说并不是什么问题,只是事情发生在国庆假期,才杀了所有工程师一个猝不及防。

     据说,鹿晗得知微博技术小哥结婚当天加班因自己的微博而加班后,专门托人转达歉意,其经纪人也在朋友圈表示要请加班的小哥吃饭。或许,这也算是婚礼的意外之贺了。

    

     总之,经此一役,鹿黑客一战成名,程序员圈无人不知,皆叹服于鹿饭之力。恐怕节后第一天,微博便马上开会扩大服务器备用空间,他日其他明星想要挤垮微博,怕是越来越难...

    

     投票

    

    

    http://weixin.100md.com
返回 浅黑科技 返回首页 返回百拇医药