前段时间在做一个android平台的QQ,服务器端是跑在Tomcat上的,但是每次测试一会,Tomcat就会卡住,不在响应任何请求,包括HTTP请求和TCP请求都不在响应。
后来想到可能是连接池占满了,而且都未被释放,就通过系统命令查看了一下Tomcat监听的8080端口和Netty服务器监听的52621端口(自定义的),发现有一大堆ESTABLISHED的连接,而且很多都是源于同一个ip地址,说明android端在发起HTTP请求或者TCP请求后都未把连接关闭,最后把该及时close的和disconnect的都做了处理。就不会出现这样的情况了。
附上端口连接检查命令:
windows:
netstat -aon|findstr "8080"linux:
netstat -na | grep ESTAB | grep 8080 | wc -l
本文介绍了一次解决Android应用导致Tomcat服务器连接池溢出的问题经历。通过使用系统命令检查连接状态,发现大量ESTABLISHED连接占用资源,最终通过对Android客户端进行优化解决了这一问题。
1816

被折叠的 条评论
为什么被折叠?



