昨天下午,运维改完了域名,昨天晚上客服就陆续反映客户端有小部分新老客户登录失败。
运维坚持说,改动的是其它域名,不影响当前客户端。
好吧,客户端工程师只能去问题客户机器上远程查看日志,查看问题。
因为客户端版本众多,每个版本都有不同的特性,所以这给在客户端机器上找问题增加了难度。
因为新版本客户端域名都是从本地数据库读出来的,按照这样的逻辑,本地存储中确实没有运维修改过的域名。
而且本地存储中所有的域名,在客户的机器上 ping 都是通的。
排除了域名问题,客户端工程师,一直在问题客户机器上忙碌,不停地修改 dll,替换客户机器上的旧版本,一天下来竟然找不出问题。
旁晚时分,无奈把域名恢复,客户端竟然好用了。。。。
再分析原因,发现离职的同事图方便,在客户端中,域名直接写死在代码中,旧版本的代码在短时间内一直没有得到很好的回溯,这确实是个坑。
问题解决了,静下心来想想,觉得解决域名问题的方法,还是太笨了。直接在客户机器上替换 dll 调试,花了一天时间,人家还是脾气好的,不好的,直接骂爹喊娘了!
这时候即便在客户机器上,上个抓包工具(wireshark),扑捉 dns 解析,也不至于查不到被写死在代码里面的域名问题。
下面描述一下通过wireshark捕捉 dns 的方法,方法挺简单的。
1、查看本地机器 DNS 设置。
2、打开 wireshark 捕获本地网络 DNS 解析,浏览器输入有效的百度域名,再输入无效域名。
有效的域名会返回 ip 地址,无效的域名会返回“No such name ...”
3、总结:
DNS 解析失败,链接失败,道理是这么样,但实际情况嘛,人急起来,往往都是用最笨的方法去解决问题,除非已经踩过坑,有经验积累能马上定位问题,否则关键时刻,头脑还得清晰!
客户端版本维护确实不严谨!域名竟然直接写入代码中,这是什么人,是怎么混进来的,靠关系吗~~ 底层员工出现问题,领导也脱不了干系,所以良好的团队和良好的管理是密不可分的!
运维修改域名前没有很好地查看以前的记录,是否与业务有交集。所以企业团队之间的交流还有待加强!