先说一下公司基础架构的部署关系:
问题描述:
web cluster在调用app cluster时,APP报错java.net.SocketTimeoutException: Read timed out,web这边报500。
报错是偶然性的,在生产上,一个Instance平均一天只报几次。
抓包情况如下:
从日志看到,web请求app发送的body内容为“{}”。
web端抓包:
app端抓包:
结论:从抓包情况来看,web端的确没有把"{}"这个body发送出去,而content-length又是2,所以才导致了app端一直等待web端发送的body,最终导致超时了。
遗留问题:
1.检查web端发送的代码,看是否存在多线程问题(因为现象是时有时无的),导致这个body丢失了。
2.能否存在一种可能是web端没有收到app回复的ark包,所以web端才没有发送body,只把head发送过去了。
好了,写到这里,继续查问题了,明天有新进展继续更新!