线上排查之九阴真经

这里总结那些令人意想不到的用起来简单但是能解决大问题的方法。

1. 使用curl调用一个接口没问题,使用http client调用有问题,传参数一样啊,怎么就不对呢,本地开个nc,然后将http发到nc开的本地端口,nc就会打印除http内容,对比一下就知道差距在哪了!
2. 一个程序hard coded一个域名,那测试怎么办呢,不能连线上系统吧,改hosts!
3. 线上排查问题找不到是哪个请求,可以在http get中的URL加一个随机参数,这样在出问题的请求上就打了个标记,在tomcat access日志中就能找到,有些框架在日志上也会打印一个请求id,跟中整个http流程。
4. mvn打包过不去,测试用例失败,着急上线咋办呢? mvn -Dmaven.test.skip=true -DskipTests install
5. 服务超时,服务失败,客户方找来了,我咋办,有时候不是我的问题我花了几个小时找日志是我以来接口的问题,这个不爽,哪咋办?加监控,要有失败数量监控,成功数量监控,超时监控等,这样有问题就知道是我的问题还是我以来的接口问题。
6. 缓存配置修改,可以一个一个关闭后调整配置重启,一部分穿透数据库,计算穿透量在可接受范围即可。
7. 数据库扩容,双写,迁移老数据,切读,下双写。
8. 迁移队列,从一种队列迁移到另外一种,可以先双读,再切写,也可以先上写,然后双读,滤重,关闭双读,下双读。
9. 主题系列:查看io,memche,cpu,netio等问题的命令的使用。
10. 主题系列:redis watch, memcache-top。

发表评论