早上7点接到报警(有机器oom报警,且负载很高,运维看阿里云监控上的tcp链接),研发和运维小伙伴一起分析,因为怕影响线上客户,直接选择了服务回退(昨天)。
服务回退后,业务正常,dubbo调用没有超时。仔细分析代码层面
发现调用一个第三方服务http没有设置超时时间
问题1 调用http接口未设置超时时间
使用的hutool工具,默认超时时间20s左右
解决方案:设置连接超时和读超时
从阿里云NAT网关发现,连接数从凌晨开始一直持续在上涨,而对比前一天的,曲线图明显不一样,凌晨连接数大概1000多,而今天凌晨的最高达到了12K,超出了最大连接数配置。即便设置了超时时间,可能http请求后的http连接还是占用着没有释放
问题2 http连接未释放
解决方案:调用对应的http close释放资源