这几天随着客户端一个新版本发布,运维发现CDN的流量猛跌:

话说流量就是金钱,流量就是工资。领导很生气,后果很严重。没什么好说的,赶紧查!一开始怀疑服务端有问题,先受伤的总是我们,当然这也是没错的,因为发出去的版本泼出的水,当然先排查能迅速解决的问题。屎劲查(IIS日志分析、CND日志分析……此处省略N个字),确实发现了个bug,但修复后发现流量并没有恢复。

于是运营统计了下用户的意见反馈信息:

发现大部分用户都是说cmwap下面有问题,于是赶紧在测试环境试了下,果然重现了,既然重现了按理说问题很好查了,其实这时我已经比较肯定是客户端的代码有问题了。于是开始排查客户端上传的错误日志,但不知道是错误信息记录不完整还是上传不及时,客户端的一些错误码并没有指引我们走到正确的路上……客户端开发也说新老版本代码没区别。

既然服务端没问题,客户端也好好的,那么只能怀疑是cmwap网络中间传输有问题了,因为cmwap的确是比较奇葩的。我开始怀疑cmwap是不是把http什么请求头过滤掉导致的?就在我茅厕顿开的时候,客户端发现了:

说是bug也不完全算。客户端发现新老版本有个区别就是请求服务端的时候多带了一个http头:Accept-Encoding:gzip

我们都知道:

据HTTP协议,如果你可以处理GZip格式,并且希望服务器以GZip的格式来返回内容,需要在HTTP的请求的Header中声明"Accept-Encoding"为"gzip",如果服务器可以将内容压缩为GZip格式,那么服务器返回的Response的Header中将会设置"Content-Encoding" 属性的值是gzip,同时将返回的内容压缩为GZip格式。

但是事实却发现移动的WAP网关似乎没有按套路出牌,要不就是把gzip给吞了但同时又压缩了,要不就是返回了Content-Encoding但是没压缩,而且似乎并不是每次都会有问题。至于具体细节,客户端上传的错误信息没有价值,我也没好意思找他们要代码联调。反正测试环境把gzip去掉是好了,等着故障报告吧。

从这次故障我得出三点式泳衣是有益的:

1、上线前的集成测试的重要性;

2、错误信息记录准确完整的重要性;

3、用户反馈的重要性(新打的客户端包正在给反馈的用户在测试)。

PS:哪位大神对移动WAP网关比较了解,不吝赐教,总感觉这还不是真相,但跟mh370失联一样真相只有一个!

PPS:对不起大家,我标题党了。为mh370上的所有人祈福,奖金没了可以再赚,生命只有一次。

欢迎访问我的新博客:http://zhanjindong.info/2014/03/13/cmwap-accept-encoding-issue/

飞机找不到,流量哪去了?记一次移动WAP网关导致的问题的更多相关文章

  1. Windows7电脑上不去网,ipconfig查询时默认网关会出现0.0.0.0问题的解决

    用ipconfig查看网络配置,发现其他都正确,唯独默认网关上多了一条0.0.0.0的记录,.禁用网络连接再启用也不能恢复.网上找了一下有说改注册表的,打开注册表找到 HKEY_LOCAL_MACHI ...

  2. adsas数据库去O记

    adsas 数据库是用于广告买量数据分析;在17年由 Oracle 迁移到 PostgreSQL.现把之前的迁移笔记整理下.本次迁移表91个:存储过程21个:数据库大小2G. 1. 准备Postgre ...

  3. 《Python绝技:运用Python成为顶级黑客》 用Python分析网络流量

    1.IP流量将何去何从?——用Python回答: 使用PyGeoIP关联IP地址和物理地址: 需要下载安装pygeoip,可以pip install pygeoip 或者到Github上下载安装htt ...

  4. tyvj1013 找啊找啊找GF

    描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见.""诶,别再见啊..."七夕...七夕...七夕这个日子,对于sqybi这种单身的 ...

  5. TYVJ P1013 找啊找啊找GF Label:动态规划

    做题记录:2016-08-15 22:19:04 背景 MM七夕模拟赛 描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见.""诶,别再见啊.. ...

  6. IKAnalyzer进行中文分词和去停用词

    最近学习主题模型pLSA.LDA,就想拿来试试中文.首先就是找文本进行切词.去停用词等预处理,这里我找了开源工具IKAnalyzer2012,下载地址:(:(注意:这里尽量下载最新版本,我这里用的IK ...

  7. 找啊找啊找GF

    P1013 找啊找啊找GF 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 MM七夕模拟赛 描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手, ...

  8. 前阿里CEO卫哲谈阿里创业经验:如何找人、找钱、找方向?(不同的阶段分别有:时间优先、金额优先、比例优先,不要做平台,太难)

    新浪科技李根 整理报道 卫哲现在是御嘉基金的创始合伙人,他另一个更加知名的身份是阿里巴巴(B2B)前CEO,在2006年到2011年的时间里,卫哲见证了阿里巴巴如何利用人才.资本和方向选择一路壮大. ...

  9. 微信5.0 Android版飞机大战破解无敌模式手记

    微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...

随机推荐

  1. dom4j: 用dom4j生成xml后第二行空行的问题

    只需要指定: format.setNewLineAfterDeclaration(false); 即可. 例: OutputFormat format = OutputFormat.createPre ...

  2. (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决

    boost.property_tree可以用来解析xml和json文件,我主要用它来解析xml文件,它内部封装了号称最快的xml解析器rapid_xml,其解析效率还是很好的.但是在使用过程中却发现各 ...

  3. psycopg使用

    1.使用示例 import psycopg2 # 建立数据库连接 conn = psycopg2.connect("dbname=test user=postgres") # 开启 ...

  4. 使用PostgreSQL遇到的一个问题[column does not exist]字段不存在:

    表结构: 在我上面的表结构中,明明有一个叫做"fromdeviceId"的字段,但是查询的时候却提示找不到该字段: 仔细观察错误信息,发现,我的字段明明是有一个大写字母(fromd ...

  5. iOSUITableView头部带有图片并且下拉图片放大效果

    最近感觉UITableview头部带有图片,并且下拉时图片放大这种效果非常炫酷,所以动手实现了一下,效果如下图: 1.gif 实现原理很简单,就是在UITableview上边添加一个图片子视图,在ta ...

  6. EntityFramework Model有外键时,Json提示循环引用 解决方法

    正文之前先说两句,距离上篇博客已将近两个月,这方面的学习和探索并没有停止,而是前进道路上遇上了各种各样的问题,需要不断的整理.反思和优化,这段时间的成果,将在最近陆续整理发出来. 个人感觉国内心态太浮 ...

  7. button上传替换file上传按钮,并显示图片缩略图,纯jsp操作

    1.jsp代码 <div class="inputBox"> <span id="tu" <c:if test="${pd = ...

  8. thinkphp验证码乱码的解决办法

    很有可能是入口文件index.php和.htaccess文件要转换成 以UTF-8无BOM格式编码

  9. Windows系统32位、64位DLL文件的存放位置

    查资料时无意中发现,Windows系统存放DLL的文件路径似乎有点蹊跷: 32位的DLL存放在C:\Windows\SysWOW64,而64位的DLL存放在C:\Windows\System32.即使 ...

  10. [uboot]uboot中run的一些command在源码位置

    如在uEnv.txt中, loadfdt=fatload mmc ${mmcdev}: ${fdtaddr} ${fdtfile} fdtboot=run mmc_args; bootz ${load ...