线上案例分析-java进程正常却请求阻塞

一、问题现象

用户打开页面,白屏,过了30秒,很多接口报请求超时

二、问题原因

java进程里面的数据库连接池被耗尽,具体原因是调用第三方接口出现高延迟、对方应用的数据库宕机

三、排查流程

1、查看每个IP的连接数据量

SELECT id,client_ip,COUNT(client_ip) AS client_num FROM 
(SELECT SUBSTRING_INDEX(HOST,':' ,1) AS client_ip,id FROM information_schema.processlist ) AS connect_info 
GROUP BY client_ip ORDER BY client_num DESC;

2、找出所有执行时间超过 5 分钟的线程,拼凑出 kill 语句,方便后面查杀

SELECT CONCAT('kill ', id, ';') FROM information_schema.processlist WHERE Command != 'Sleep' AND TIME > 300 ORDER BY TIME DESC;

四、解决方案

项目引入断路器即可

猜你喜欢

转载自blog.csdn.net/luo381821/article/details/131239673