题目描述:

用户使用手机操作头条app时总是出现“服务繁忙”,使用其他app却没有问题,针对这种情况从客户端,服务端和网络方向分析可能的原因

思考:

这个问题出现的原因很多,咱们不能东一榔头、西一棒槌,想到哪里说到哪里(这样定位问题就是瞎蒙),应该有逻辑的,有一套定位问题的思路,

回答的思路:

1、 头条app有问题,但是手机其他app没有问题, 说明什么? 这个是一个很典型的对照测试, 说明网络没问题,手机没问题,问题 出在头条app整套系统中,接下来我们就需要思考头条app的通信过程

2、简单画一下头条app的整个通信过程,目前主流的方案大概如下

字节跳动面试题 问题定位

 

 

1、app客户端(浏览器)发起请求

2、nginx收到请求,然后转发给后端服务

3、后端某个服务节点收到请求,处理请求,返回给nginx

4、nginx收到回复返回给客户端(app 或者浏览器)

大概清楚了通信过程,其实每一个环节都可能出问题,app的问题、nginx的问题、后端服务的问题

1、怎么区分到底是客户端的问题还是后端的问题的问题?

现在很流行的抓包就排上用场了,在客户端和nginx之间设置抓包工具的代理(fiddler或者charles), 分析头条app前后端的请求, 如果相应都是对的,但是app显示服务繁忙,说明问题在app端,需要在app端找原因, 如果代理都没有抓到请求,说明没有发起请求,问题也可能出现在app端,

app端可能的原因:1、app权限设置不对  2、app包版本不对 3、app端开发修改代码后导致的错误 4、其他原因

2、通过抓包分析排除app端问题后,那问题可能就出现nginx和后端服务器 或者系统内部的网络问题(nginx和后端服务网络有问题)

1、检查服务端是否正常运转

2、服务端正常运行,就查看服务端的日志, 看看服务端接收到的请求和响应是否正确, 如果接受到的请求不对,那说明问题可能出现在nginx转发, 如果请求正确,响应不对,那么问题出现在服务端,需要仔细定位服务端为啥会出现这个错误(数据库、缓存是否ok,服务是否ok)

3、如果服务端正常, nginx也能正常收到请求,但是服务端日志没有请求收到的消息, 说明nginx配置可能不对, 或者nginx到服务端的网络不通。

 

上面是多动多得学院测试小小老师给的大概参考思路, 如有问题,可以进一步讨论, 博客首页有群号

 

 

相关文章: