线上线程池配置错误导致服务故障

Java服务早高峰故障原因分析

背景

某个早高峰,服务大量抛出线程拒绝的异常,同时没有触发自动扩容,损失了大量请求,影响了单量

原因分析

5why分析法
1、为什么服务抛出线程拒绝?
rpc线程池设置为了256,故障期间线程处理慢,短时间内线程池被打满
2、为什么线程处理变慢
新增的接口内部有异步操作,使用了新的线程池,新的线程池设置不合理,core:1,list:1000,max:10,
同时在方法最后会同步get,Future.get(),
由于早高峰及新接口放量,请求量比较大,新增接口的异步请求都hang在了阻塞队列中,因为Future.get的时候,没有设置超时时间,进而导致整个rpc请求都hang住了
在这里插入图片描述

3、为什么服务没有自动扩容
虽然线程拒绝,但机器本身压力不高,未触发扩容阈值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值