前段时间查看服务器访问日志的时候发现有两个接口的调用频率奇高,加起来基本上是其他接口总和的10倍以上。这两个接口分别是登陆接口和获取用户收藏列表接口,分析一下,首先考虑的是客户端问题,本机测试打印日志查看并无异常,每次启动客户端只调用了一次。然后怀疑是不是有人在抓取我的数据,但是这两个接口对于采集数据的人来说毫无意义,查看客户端的ip地址又不是同一个ip调用的,ip很多,而且很多ip只调用了这个接口没调用过其他接口。这个就奇怪了,应该也不会是有人攻击我的服务器,但是数据异常非常明显,再次思考会不会是某个旧版本出问题了,查看访问日志发现所有版本都有这个情况。
没法子了,只有仔细检查客户端代码,调用这两个接口的地方也正常,只有Application的onCreate里面有稍微可能出问题。如果Application的onCreate不断的被调用才有可能出现这样的异常数据。但是Application的onCreate只有在程序第一次启动才回被调用,换句话说就算用户经常关闭打开客户端也很难产生这么多的请求,而且跟其他接口的区别也不可能那么多大。静静的想了一段时间想起Android的Service在某些条件下会杀不死,不断的重启,比如消息推送模块就需要这样的功能。那应该就是这个问题了,马上改了一个版本上去,果然是这个问题。
这次事件得到一个道理就是任何情况下分析问题要眼观八方,不能太过相信api,要理性分析和怀疑
–每天一点点