现象
当大量的请求到服务,过一会,服务无法响应请求,k8s配置了健康检查,服务被k8s重启
分析
让运维的同学把thread和heap dump了下来,打开一看,全部tomcat的线程阻塞在Druid连接池上
线程情况
所有的tomcat线程堵塞在com.alibaba.druid.pool.DruidDataSource.takeLast
,该方法是从Druid的连接池取出连接,当线程池没有空闲的时候,一直阻塞等待。
大约 1 分钟
当大量的请求到服务,过一会,服务无法响应请求,k8s配置了健康检查,服务被k8s重启
让运维的同学把thread和heap dump了下来,打开一看,全部tomcat的线程阻塞在Druid连接池上
所有的tomcat线程堵塞在com.alibaba.druid.pool.DruidDataSource.takeLast
,该方法是从Druid的连接池取出连接,当线程池没有空闲的时候,一直阻塞等待。