背景:java客户端调用thrift python服务端,使用客户端使用thrift线程池调用时会在运行一段时间后就会报read time out
分析过程如下:
1:通过监听服务端抓包查看,客户端是能发送过来请求,但是服务端没有处理请求
2: 查看服务端代码发现跟python设置numWorker太小有关系
原因如下,使用线程池会缓存服务端连接,如果服务设置线程池连接数不合理会导致发送请求客户端发送请求一直堵塞,进而导致超时。
解决思路:
1:不使用thrift线程池,每次请求都新建一个thrift客户端
2: 线程池连接数要小于服务启动的处理进程数。