经常断线重连的问题

背景

客服经常反馈说很多老游戏玩一会儿就会断开连接,而且这个问题只发生在移动端的一些老版本游戏。

原来的组网是玩家直接阿里云上的游戏服务器,后来因为安全问题,所以运维在中间加了一层HAProxy代理,

问题的反馈是在某几天集中反馈的。

分析过程

在问题的分析过程中是遇到很多干扰因素的,但从事后回顾所有的现象,其实就是一种合理的工作方法,如果不梳理就会陷入一个死胡同。

当客户反馈问题时,他描述现象是正确的,比如某某游戏某某问题,某某游戏某某问题……

运维在操作、调整之后也反馈 某某操作之后现象还是存在的……

当这些事实摆在你面前的时候,从运维操作方式、用户现象会存在矛盾的地方,比如运维猜测可能是HAProxy的原
因,所以把部分游戏切回到了直连模式,但仍然出现断线的问题(因为反馈的游戏太多,可能运维操作错了?)

一开始太着急把所有游戏的问题都归于一个原因是不对的,这时应该一个一个分析。 所以和客服沟通把反馈的游戏列出一个表格,然后我逐一复现。复现之后,和运维进行逐一排查,然后验证。事实上,我们发现了4个原因,而不是一个原因:

  1. HAProxy 保活时间60s太短了。 连接60s内无数据就会关闭链接。

  2. 阿里高防的策略配置。

  3. 游戏本身的bug,某个依赖服务刚好最近异常了。

  4. 某安全厂商提供的测试域名存在问题。

结论

当问题集中反馈时,我们会陷入一种思维陷阱,这时就需要冷静的思考,通过假设-排查、再假设-排查 来查找问题。