2009年9月5日。白露。
深圳南山,极光科技总部。
虽然节气到了白露,但深圳的暑气依然象个赖着不走的流氓,把整个城市蒸得发烫。
极光科技的办公区里,虽然刚融了两亿美金,每个人都领了厚厚的奖金,但空气中却弥漫着一股低气压。
“还没查出来吗?”
客服主管小文站在技术部门口,急得直跺脚。她手里拿着一份打印出来的投诉报表,上面用红笔圈出了密密麻麻的记录。
“今天上午又有三百多个投诉,全是关于qq的!有的说消息收不到,有的说图片裂开了,还有的说挂着挂着就掉线了!用户都在骂我们的手机断流,说我们用了垃圾基带!”
办公区里,几十个工程师正埋头在屏幕前,键盘敲得劈啪作响。
他们的脸色都很不好看。
林一坐在最中间,头发乱得象个鸡窝,面前摆着三罐空了的红牛。
作为首席架构师,他最容不得别人质疑他的系统。
“放屁!”
林一红着眼睛骂了一句,不知道是骂用户还是骂代码,“极光os的底层网络栈是我亲自重写的!信号满格,wi-fi满速,哪里断流了?这帮用户是不是还在用2g网络下毛片?”
“可是林总……”小文委屈地举起手机,“这是我自己的手机,连着公司的光纤wi-fi。你看,我给我男朋友发的消息,那个小圈圈转了一分钟才发出去。然后他回我的消息,我这边根本没提醒,只有点进去才看得到。”
林一一把夺过手机。
果然。
qq聊天界面上,那个代表“发送中”的圆圈,转得人心慌。
转了足足四十秒,才变成“发送成功”。
这对于实时通信软件来说,就是残废。
“见鬼了……”
林一抓了抓头发,把手机连上计算机,打开了logcat(日志抓取工具)。
“是不是后台杀进程太狠了?阿龙,把qq的保活优先级调到最高!允许它自激活,允许它常驻内存,哪怕耗点电也得给我保住!”
“师父,早调了。”
旁边的阿龙一脸苦涩,把笔记本屏幕转过来。
“昨天晚上我就把qq列进了系统白名单,待遇比亲儿子还亲。甚至为了防止它掉线,我专门写了个心跳包守护进程。可是……”
阿龙指着屏幕上一行行红色的报错代码。
“没用。”
“只要一切到后台超过五分钟,心跳包就会超时。而且,这不是我们杀的,是服务端断开的。”
“服务器断开?”
林一愣了一下。
作为谷歌出来的精英,他的第一反应是:“腾讯的服务器崩了?”
“不象。”
阿龙摇摇头,神色凝重。
“我刚才用我的诺基亚n97试了一下,同一个wi-fi,同一个账号,秒收秒发,丝般顺滑。”
“只有用极光手机……才会便秘。”
这句话一出,周围几个内核工程师都停下了手里的活。
大家面面相觑,一股寒意顺着脊梁骨爬了上来。
如果在同一个网络环境下,别人的手机没事,只有你的手机卡顿、掉线、延迟。
排除掉所有硬件和软件的故障后。
剩下的那个答案,哪怕再不可思议,也是真相。
ceo办公室。
江彻正在看那份最新的用户留存报告。
曲线本来是昂扬向上的,但就在这周,突然出现了一个诡异的拐点。
对于还在高速增长期的产品来说,这是不正常的。
“咚咚咚。”
门没关,林一和阿龙走了进来。
两人的脸色都很难看。
“怎么了?”江彻放下报表。
“彻哥,你看这个。”
阿龙没有废话,直接把一台笔记本计算机放在江彻面前。
屏幕上,是两条正在流动的波浪线。
一条是绿色的,波峰波谷很规律。
一条是红色的,断断续续,象是心律不齐的病人心电图。
“绿色的是诺基亚手机登录qq的数据包流向。”
阿龙指着屏幕解释道,“红色的是……我们的。”
“我们在对数据包进行抓包分析后发现,当极光手机向腾讯服务器发送心跳请求时,有30到50的概率,会发生丢包或者延迟响应。”
“而且,这种延迟不是随机的。”
阿龙深吸一口气,点开了详细数据包的header(包头)信息。
“只有当设备标识符(ii)属于极光手机号段,或者er-agent里带有‘aurora’标识时,这种延迟才会出现。”
“只要我把手机伪装成摩托罗拉或者htc,延迟立马消失。”
江彻盯着那行代码。
屋里很安静,只有空调出风口的嘶嘶声。
他听懂了。
这不是bug。
这是狙击。
腾讯没有直接封杀极光,没有弹窗说“不仅止你用”。
他们只是在服务端,给极光手机的数据流,加了一道看不见的“阀门”。
这道阀门平时开着,但时不时关小一点。
让你觉得卡,觉得慢,觉得不爽。
但你又说不出是哪里坏了,只能怪手机不行,怪系统垃圾。
这叫灰度限流。
或者用更通俗的话说——穿小鞋。
“这也太下作了!”
林一气得把手里的红牛罐子捏扁了,“作为一家互联网巨头,居然在底层协议上搞这种小动作?他们还有没有一点技术人员的尊严?”
“尊严?”
江彻看着屏幕上那条断断续续的红色曲线,冷笑了一声。